#ifndef PORYGONLANG_USERDATA_HPP #define PORYGONLANG_USERDATA_HPP #include #include #include "UserDataField.hpp" namespace Porygon::UserData { class UserData { std::unordered_map _fields; public: explicit UserData(std::unordered_map fields) { _fields = std::move(fields); } bool ContainsField(uint32_t fieldId) { return _fields.find(fieldId) != _fields.end(); } UserDataField *GetField(uint32_t fieldId) { return _fields[fieldId]; } void CreateField(uint32_t fieldId, UserDataField *field) { _fields.insert({fieldId, field}); } int32_t GetFieldCount() { return _fields.size(); } }; } #endif //PORYGONLANG_USERDATA_HPP