From fa886ffaac83ff4f4e646ffe361fee355ea0cb10 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 28 Oct 2014 19:23:02 +0000 Subject: Refactor word_db, use an unordered map --- src/word_db.hh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/word_db.hh') diff --git a/src/word_db.hh b/src/word_db.hh index ee4e6ab5..999d03b0 100644 --- a/src/word_db.hh +++ b/src/word_db.hh @@ -5,6 +5,7 @@ #include "interned_string.hh" #include +#include namespace Kakoune { @@ -14,12 +15,20 @@ class WordDB { public: WordDB(const Buffer& buffer); + WordDB(const WordDB&) { kak_assert(false); } + WordDB(WordDB&&) = default; std::vector find_prefix(StringView prefix); std::vector find_subsequence(StringView subsequence); int get_word_occurences(StringView word) const; - using WordList = std::map; + using UsedChars = std::bitset<64>; + struct WordInfo + { + UsedChars letters; + int refcount; + }; + using WordList = std::unordered_map; private: using LineToWords = std::vector>; -- cgit v1.2.3