#pragma once #include #include #include #include class Dictionary { public: Dictionary() = default; virtual ~Dictionary() = default; void addStringItem(const std::string& key, const std::string& item); void addDictItem(const std::string& key, std::unique_ptr dict); Dictionary* getDict(const std::string& key) const; std::vector getDictKeys() const; std::vector getStringKeys() const; std::string getItem(const std::string& key) const; bool hasKey(const std::string& key) const; bool hasStringKey(const std::string& key) const; bool hasDictKey(const std::string& key) const; protected: std::map mStringData; std::map > mDictData; };