#pragma once #include #include #include #include "Utils/ClassUtils.h" #include "Obj/Gdt/GdtEntry.h" class InfoString { static const std::string EMPTY_VALUE; std::unordered_map m_values; std::vector m_keys_by_insertion; public: _NODISCARD bool HasKey(const std::string& key) const; _NODISCARD const std::string& GetValueForKey(const std::string& key) const; const std::string& GetValueForKey(const std::string& key, bool* foundValue) const; void SetValueForKey(const std::string& key, std::string value); void RemoveKey(const std::string& key); _NODISCARD std::string ToString() const; _NODISCARD std::string ToString(const std::string& prefix) const; void ToGdtProperties(const std::string& prefix, GdtEntry& gdtEntry) const; void FromString(); void FromString(const std::string& prefix); };