4 #ifndef XJMUSIC_ENTITIES_MEME_TAXONOMY_H
5 #define XJMUSIC_ENTITIES_MEME_TAXONOMY_H
24 std::set<std::string> memes;
25 static std::regex rgx;
26 static std::string MEME_SEPARATOR;
27 static std::string KEY_NAME;
28 static std::string KEY_MEMES;
29 static std::string DEFAULT_CATEGORY_NAME;
31 static std::set<std::string>
56 return lhs.name < rhs.name;
63 [[nodiscard]] std::string
getName()
const;
69 [[nodiscard]] std::set<std::string>
getMemes()
const;
76 bool isAllowed(std::set<std::string> &targets)
const;
94 [[nodiscard]] std::string
toString()
const;
113 std::set<MemeCategory> categories;
114 static char CATEGORY_SEPARATOR;
129 explicit MemeTaxonomy(
const std::set<MapStringToOneOrManyString> &data);
146 static MemeTaxonomy fromList(
const std::vector<std::map<std::string, std::variant<std::string, std::vector<std::string>>>>& list);
157 [[nodiscard]] std::string
toString()
const;
163 std::set<MapStringToOneOrManyString>
toList()
const;
169 [[nodiscard]] std::map<std::string, std::vector<std::string>>
toMap()
const;
182 [[nodiscard]]
bool isAllowed(std::set<std::string> memes)
const;
Definition: MemeTaxonomy.h:21
friend bool operator<(const MemeCategory &lhs, const MemeCategory &rhs)
Definition: MemeTaxonomy.h:55
std::string toString() const
Definition: MemeTaxonomy.cpp:113
bool isAllowed(std::set< std::string > &targets) const
Definition: MemeTaxonomy.cpp:97
MapStringToOneOrManyString toMap() const
Definition: MemeTaxonomy.cpp:120
bool hasMemes() const
Definition: MemeTaxonomy.cpp:108
std::string getName() const
Definition: MemeTaxonomy.cpp:87
std::set< std::string > getMemes() const
Definition: MemeTaxonomy.cpp:92
Definition: ActiveAudio.h:11
std::map< std::string, std::variant< std::string, std::set< std::string > >> MapStringToOneOrManyString
Definition: MemeTaxonomy.h:16