26#include "SerializableDict.hpp"
41 virtual size_t KeyMaxLength()
const override;
44 size_t len)
const override;
47 size_t len)
const override;
49 virtual std::vector<const DictEntry*> MatchAllPrefixes(
50 const char* word,
size_t len)
const override;
52 virtual LexiconPtr GetLexicon()
const override;
57 size_t len)
const override;
66 bool EnumerateKeys(
const std::function<
void(
const char*,
size_t)>& cb)
const;
68 virtual void SerializeToFile(FILE* fp)
const override;
73 static MarisaDictPtr NewFromDict(
const Dict& thatDict);
75 static MarisaDictPtr NewFromFile(FILE* fp);
77 static MarisaDictPtr NewFromBuffer(
const char* data,
size_t size);
80 bool IsLexiconReconstructed()
const {
81 return lexiconReconstructed.load(std::memory_order_acquire);
87 void LoadFromMappedBuffer();
88 void ReconstructLexicon()
const;
90 mutable size_t maxLength;
91 mutable LexiconPtr lexicon;
92 mutable std::mutex lexiconMutex;
93 mutable std::atomic<bool> lexiconReconstructed;
94 LexiconPtr valuesLexicon;
97 std::unique_ptr<MarisaInternal> internal;
Abstract class of dictionary.
Definition: Dict.hpp:63
Darts dictionary.
Definition: MarisaDict.hpp:37
virtual bool SupportsFastPrefixMatch() const override
Returns true if this dict can handle prefix queries directly without PrefixMatch building a lookup ta...
Definition: MarisaDict.hpp:54
A class that wraps type T into a nullable type.
Definition: Optional.hpp:26
Serializable dictionary interface.
Definition: SerializableDict.hpp:32
Result of a PrefixMatch fast-path lookup.
Definition: Dict.hpp:52