#pragma once #include "messages/Image.hpp" #include "messages/ImageSet.hpp" #include #include #include QStringAlias(EmoteId); QStringAlias(EmoteName); namespace chatterino { struct Emote { EmoteName name; ImageSet images; Tooltip tooltip; Url homePage; // FOURTF: no solution yet, to be refactored later const QString &getCopyString() const { return name.string; } }; bool operator==(const Emote &a, const Emote &b); bool operator!=(const Emote &a, const Emote &b); using EmotePtr = std::shared_ptr; class EmoteMap : public std::unordered_map { }; using EmoteIdMap = std::unordered_map; using WeakEmoteMap = std::unordered_map>; using WeakEmoteIdMap = std::unordered_map>; EmotePtr cachedOrMakeEmotePtr(Emote &&emote, const EmoteMap &cache); } // namespace chatterino