libmongocrypt
mc-fle2-find-range-payload-private-v2.h
1 /*
2  * Copyright 2022-present MongoDB, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef MC_FLE2_FIND_RANGE_PAYLOAD_PRIVATE_V2_H
18 #define MC_FLE2_FIND_RANGE_PAYLOAD_PRIVATE_V2_H
19 
20 #include "mongocrypt-buffer-private.h"
21 #include "mongocrypt-private.h"
22 #include "mongocrypt.h"
23 
24 #include "mc-array-private.h"
25 #include "mc-fle2-range-operator-private.h"
26 
30 typedef struct {
31  mc_array_t edgeFindTokenSetArray; // g
32  int64_t maxContentionFactor; // cm
34 
50 typedef struct {
51  struct {
53  bool set;
54  } payload;
55 
56  // payloadId Id of payload - must be paired with another payload.
57  int32_t payloadId;
58  // firstOperator represents the first query operator for which this payload
59  // was generated.
60  mc_FLE2RangeOperator_t firstOperator;
61  // secondOperator represents the second query operator for which this payload
62  // was generated. Only populated for two-sided ranges. It is 0 if unset.
63  mc_FLE2RangeOperator_t secondOperator;
65 
76 typedef struct {
77  _mongocrypt_buffer_t edcDerivedToken; // d
78  _mongocrypt_buffer_t escDerivedToken; // s
79  _mongocrypt_buffer_t serverDerivedFromDataToken; // l
81 
82 void mc_FLE2FindRangePayloadV2_init(mc_FLE2FindRangePayloadV2_t *payload);
83 
84 bool mc_FLE2FindRangePayloadV2_serialize(const mc_FLE2FindRangePayloadV2_t *payload, bson_t *out);
85 
86 void mc_FLE2FindRangePayloadV2_cleanup(mc_FLE2FindRangePayloadV2_t *payload);
87 
88 #endif /* MC_FLE2_FIND_RANGE_PAYLOAD_PRIVATE_V2_H */
Definition: mc-fle2-find-range-payload-private-v2.h:50
Definition: mc-fle2-find-range-payload-private-v2.h:76
Definition: mc-fle2-find-range-payload-private-v2.h:30