xref: /aosp_15_r20/external/icing/icing/file/constants.h (revision 8b6cd535a057e39b3b86660c4aa06c99747c2136)
1 // Copyright (C) 2024 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_FILE_CONSTANTS_H_
16 #define ICING_FILE_CONSTANTS_H_
17 
18 namespace icing {
19 namespace lib {
20 namespace constants {
21 
22 // Icing internal max size for protos.
23 //
24 // WARNING: Changing this to a larger number may invalidate our assumption
25 // that that proto size can safely be stored in the last 3 bytes of the proto
26 // header.
27 static constexpr int kMaxProtoSize = (1 << 24) - 1;  // 16MiB
28 static_assert(kMaxProtoSize <= 0x00FFFFFF,
29               "kMaxProtoSize doesn't fit in 3 bytes");
30 
31 }  // namespace constants
32 }  // namespace lib
33 }  // namespace icing
34 
35 #endif  // ICING_FILE_CONSTANTS_H_
36