7 #ifndef _LIBIME_LIBIME_CORE_TRIEDICTIONARY_H_ 8 #define _LIBIME_LIBIME_CORE_TRIEDICTIONARY_H_ 12 #include <string_view> 13 #include <fcitx-utils/connectableobject.h> 14 #include <fcitx-utils/macros.h> 16 #include <libime/core/dictionary.h> 17 #include <libime/core/libimecore_export.h> 21 class TrieDictionaryPrivate;
24 public fcitx::ConnectableObject {
28 static const size_t SystemDict = 0;
29 static const size_t UserDict = 1;
45 void removeFrom(
size_t idx);
48 void clear(
size_t idx);
50 const TrieType *trie(
size_t idx)
const;
62 void setTrie(
size_t idx,
TrieType trie);
65 size_t dictSize()
const;
67 FCITX_DECLARE_SIGNAL(
TrieDictionary, dictionaryChanged,
void(
size_t));
68 FCITX_DECLARE_SIGNAL(
TrieDictionary, dictSizeChanged,
void(
size_t));
72 void addWord(
size_t idx, std::string_view key,
float cost = 0.0F);
73 bool removeWord(
size_t idx, std::string_view key);
75 std::unique_ptr<TrieDictionaryPrivate> d_ptr;
80 #endif // _LIBIME_LIBIME_CORE_TRIEDICTIONARY_H_ Provide a DATrie implementation.