25#include "SerializableDict.hpp"
40 virtual size_t KeyMaxLength()
const override;
43 size_t len)
const override;
46 size_t len)
const override;
48 virtual std::vector<const DictEntry*> MatchAllPrefixes(
49 const char* word,
size_t len)
const override;
51 virtual LexiconPtr GetLexicon()
const override;
56 size_t len)
const override;
58 virtual void SerializeToFile(FILE* fp)
const override;
63 static MarisaDictPtr NewFromDict(
const Dict& thatDict);
65 static MarisaDictPtr NewFromFile(FILE* fp);
67 static MarisaDictPtr NewFromBuffer(
const char* data,
size_t size);
70 bool IsLexiconReconstructed()
const {
71 return lexiconReconstructed.load(std::memory_order_acquire);
77 void LoadFromMappedBuffer();
78 void ReconstructLexicon()
const;
80 mutable size_t maxLength;
81 mutable LexiconPtr lexicon;
82 mutable std::mutex lexiconMutex;
83 mutable std::atomic<bool> lexiconReconstructed;
84 LexiconPtr valuesLexicon;
87 std::unique_ptr<MarisaInternal> internal;
Abstract class of dictionary.
Definition: Dict.hpp:63
Darts dictionary.
Definition: MarisaDict.hpp:36
virtual bool SupportsFastPrefixMatch() const override
Returns true if this dict can handle prefix queries directly without PrefixMatch building a lookup ta...
Definition: MarisaDict.hpp:53
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