#pragma once #include "comptrie_trie.h" template class TCompactTrieSet: public TCompactTrie> { public: typedef TCompactTrie> TBase; using typename TBase::TBuilder; using typename TBase::TKey; using typename TBase::TKeyBuf; using typename TBase::TSymbol; TCompactTrieSet() = default; explicit TCompactTrieSet(const TBlob& data) : TBase(data) { } template explicit TCompactTrieSet(const TCompactTrie>& trie) : TBase(trie.Data()) // should be binary compatible for any D { } TCompactTrieSet(const char* data, size_t len) : TBase(data, len) { } bool Has(const typename TBase::TKeyBuf& key) const { return TBase::Find(key.data(), key.size()); } bool FindTails(const typename TBase::TKeyBuf& key, TCompactTrieSet& res) const { return TBase::FindTails(key, res); } };