xref: /aosp_15_r20/external/icing/icing/index/lite/lite-index-options.h (revision 8b6cd535a057e39b3b86660c4aa06c99747c2136)
1 // Copyright (C) 2019 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef ICING_LEGACY_INDEX_ICING_LITE_INDEX_OPTIONS_H_
16 #define ICING_LEGACY_INDEX_ICING_LITE_INDEX_OPTIONS_H_
17 
18 #include <cstdint>
19 #include <string>
20 
21 #include "icing/legacy/index/icing-dynamic-trie.h"
22 
23 namespace icing {
24 namespace lib {
25 
26 struct LiteIndexOptions {
27   LiteIndexOptions() = default;
28   // Creates LiteIndexOptions based off of the specified parameters. All
29   // other fields are calculated based on the value of
30   // hit_buffer_want_merge_bytes and the logic in CalculateHitBufferSize and
31   // CalculateTrieOptions.
32   LiteIndexOptions(const std::string& filename_base,
33                    uint32_t hit_buffer_want_merge_bytes,
34                    bool hit_buffer_sort_at_indexing,
35                    uint32_t hit_buffer_sort_threshold_bytes);
36 
37   IcingDynamicTrie::Options lexicon_options;
38   IcingDynamicTrie::Options display_mappings_options;
39 
40   std::string filename_base;
41   uint32_t hit_buffer_want_merge_bytes = 0;
42   uint32_t hit_buffer_size = 0;
43   bool hit_buffer_sort_at_indexing = false;
44   uint32_t hit_buffer_sort_threshold_bytes = 0;
45 };
46 
47 }  // namespace lib
48 }  // namespace icing
49 
50 #endif  // ICING_LEGACY_INDEX_ICING_LITE_INDEX_OPTIONS_H_
51