// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include namespace search::attribute { template class PostingListTraits; template class PostingStore; template <> class PostingListTraits { private: using BTreeTraits = vespalib::btree::BTreeTraits<64, 16, 8, true>; public: using AggregatedType = vespalib::btree::NoAggregated; using AggrCalcType = vespalib::btree::NoAggrCalc; using const_iterator = vespalib::btree::BTreeConstIterator, BTreeTraits >; using PostingStoreBase = vespalib::btree::BTreeStore, BTreeTraits, AggrCalcType> ; using PostingStoreType = PostingStore; using Posting = PostingStoreBase::KeyDataType; }; template <> class PostingListTraits { private: using BTreeTraits = vespalib::btree::BTreeTraits<32, 16, 9, true>; public: using AggregatedType = vespalib::btree::MinMaxAggregated; using AggrCalcType = vespalib::btree::MinMaxAggrCalc; using const_iterator = vespalib::btree::BTreeConstIterator, BTreeTraits >; using PostingStoreBase = vespalib::btree::BTreeStore, BTreeTraits, AggrCalcType>; using PostingStoreType = PostingStore; using Posting = PostingStoreBase::KeyDataType; }; }