@@ -33,6 +33,15 @@ type instrumentation_scope = {
3333 mutable dropped_attributes_count : int32 ;
3434}
3535
36+ type entity_ref = {
37+ mutable _presence : Pbrt.Bitfield .t ;
38+ (* * tracking presence for 2 fields *)
39+ mutable schema_url : string ;
40+ mutable type_ : string ;
41+ mutable id_keys : string list ;
42+ mutable description_keys : string list ;
43+ }
44+
3645let default_any_value () : any_value = String_value (" " )
3746
3847let default_array_value () : array_value =
@@ -61,6 +70,15 @@ let default_instrumentation_scope (): instrumentation_scope =
6170 dropped_attributes_count= 0l ;
6271}
6372
73+ let default_entity_ref () : entity_ref =
74+ {
75+ _presence= Pbrt.Bitfield. empty;
76+ schema_url= " " ;
77+ type_= " " ;
78+ id_keys= [] ;
79+ description_keys= [] ;
80+ }
81+
6482
6583(* * {2 Make functions} *)
6684
@@ -151,6 +169,38 @@ let make_instrumentation_scope
151169 | Some v -> set_instrumentation_scope_dropped_attributes_count _res v);
152170 _res
153171
172+ let [@ inline] has_entity_ref_schema_url (self:entity_ref ) : bool = (Pbrt.Bitfield. get self._presence 0 )
173+ let [@ inline] has_entity_ref_type_ (self:entity_ref ) : bool = (Pbrt.Bitfield. get self._presence 1 )
174+
175+ let [@ inline] set_entity_ref_schema_url (self:entity_ref ) (x:string ) : unit =
176+ self._presence < - (Pbrt.Bitfield. set self._presence 0 ); self.schema_url < - x
177+ let [@ inline] set_entity_ref_type_ (self:entity_ref ) (x:string ) : unit =
178+ self._presence < - (Pbrt.Bitfield. set self._presence 1 ); self.type_ < - x
179+ let [@ inline] set_entity_ref_id_keys (self:entity_ref ) (x:string list ) : unit =
180+ self.id_keys < - x
181+ let [@ inline] set_entity_ref_description_keys (self:entity_ref ) (x:string list ) : unit =
182+ self.description_keys < - x
183+
184+ let copy_entity_ref (self :entity_ref ) : entity_ref =
185+ { self with schema_url = self.schema_url }
186+
187+ let make_entity_ref
188+ ?(schema_url :string option )
189+ ?(type_ :string option )
190+ ~(id_keys :string list )
191+ ~(description_keys :string list )
192+ () : entity_ref =
193+ let _res = default_entity_ref () in
194+ (match schema_url with
195+ | None -> ()
196+ | Some v -> set_entity_ref_schema_url _res v);
197+ (match type_ with
198+ | None -> ()
199+ | Some v -> set_entity_ref_type_ _res v);
200+ set_entity_ref_id_keys _res id_keys;
201+ set_entity_ref_description_keys _res description_keys;
202+ _res
203+
154204[@@@ ocaml.warning " -23-27-30-39" ]
155205
156206(* * {2 Formatters} *)
@@ -197,6 +247,17 @@ let rec pp_instrumentation_scope fmt (v:instrumentation_scope) =
197247 in
198248 Pbrt.Pp. pp_brk pp_i fmt ()
199249
250+ let rec pp_entity_ref fmt (v :entity_ref ) =
251+ let pp_i fmt () =
252+ Pbrt.Pp. pp_record_field ~first: true " schema_url" Pbrt.Pp. pp_string fmt v.schema_url;
253+ if not (Pbrt.Bitfield. get v._presence 0 ) then Format. pp_print_string fmt " (* absent *)" ;
254+ Pbrt.Pp. pp_record_field ~first: false " type_" Pbrt.Pp. pp_string fmt v.type_;
255+ if not (Pbrt.Bitfield. get v._presence 1 ) then Format. pp_print_string fmt " (* absent *)" ;
256+ Pbrt.Pp. pp_record_field ~first: false " id_keys" (Pbrt.Pp. pp_list Pbrt.Pp. pp_string) fmt v.id_keys;
257+ Pbrt.Pp. pp_record_field ~first: false " description_keys" (Pbrt.Pp. pp_list Pbrt.Pp. pp_string) fmt v.description_keys;
258+ in
259+ Pbrt.Pp. pp_brk pp_i fmt ()
260+
200261[@@@ ocaml.warning " -23-27-30-39" ]
201262
202263(* * {2 Protobuf Encoding} *)
@@ -272,6 +333,25 @@ let rec encode_pb_instrumentation_scope (v:instrumentation_scope) encoder =
272333 );
273334 ()
274335
336+ let rec encode_pb_entity_ref (v :entity_ref ) encoder =
337+ if (Pbrt.Bitfield. get v._presence 0 ) then (
338+ Pbrt.Encoder. string v.schema_url encoder;
339+ Pbrt.Encoder. key 1 Pbrt. Bytes encoder;
340+ );
341+ if (Pbrt.Bitfield. get v._presence 1 ) then (
342+ Pbrt.Encoder. string v.type_ encoder;
343+ Pbrt.Encoder. key 2 Pbrt. Bytes encoder;
344+ );
345+ Pbrt.List_util. rev_iter_with (fun x encoder ->
346+ Pbrt.Encoder. string x encoder;
347+ Pbrt.Encoder. key 3 Pbrt. Bytes encoder;
348+ ) v.id_keys encoder;
349+ Pbrt.List_util. rev_iter_with (fun x encoder ->
350+ Pbrt.Encoder. string x encoder;
351+ Pbrt.Encoder. key 4 Pbrt. Bytes encoder;
352+ ) v.description_keys encoder;
353+ ()
354+
275355[@@@ ocaml.warning " -23-27-30-39" ]
276356
277357(* * {2 Protobuf Decoding} *)
@@ -385,3 +465,37 @@ let rec decode_pb_instrumentation_scope d =
385465 | Some (_ , payload_kind ) -> Pbrt.Decoder. skip d payload_kind
386466 done ;
387467 (v : instrumentation_scope )
468+
469+ let rec decode_pb_entity_ref d =
470+ let v = default_entity_ref () in
471+ let continue__= ref true in
472+ while ! continue__ do
473+ match Pbrt.Decoder. key d with
474+ | None -> (
475+ (* put lists in the correct order *)
476+ set_entity_ref_description_keys v (List. rev v.description_keys);
477+ set_entity_ref_id_keys v (List. rev v.id_keys);
478+ ); continue__ := false
479+ | Some (1 , Pbrt. Bytes) -> begin
480+ set_entity_ref_schema_url v (Pbrt.Decoder. string d);
481+ end
482+ | Some (1 , pk ) ->
483+ Pbrt.Decoder. unexpected_payload " Message(entity_ref), field(1)" pk
484+ | Some (2 , Pbrt. Bytes) -> begin
485+ set_entity_ref_type_ v (Pbrt.Decoder. string d);
486+ end
487+ | Some (2 , pk ) ->
488+ Pbrt.Decoder. unexpected_payload " Message(entity_ref), field(2)" pk
489+ | Some (3 , Pbrt. Bytes) -> begin
490+ set_entity_ref_id_keys v ((Pbrt.Decoder. string d) :: v.id_keys);
491+ end
492+ | Some (3 , pk ) ->
493+ Pbrt.Decoder. unexpected_payload " Message(entity_ref), field(3)" pk
494+ | Some (4 , Pbrt. Bytes) -> begin
495+ set_entity_ref_description_keys v ((Pbrt.Decoder. string d) :: v.description_keys);
496+ end
497+ | Some (4 , pk ) ->
498+ Pbrt.Decoder. unexpected_payload " Message(entity_ref), field(4)" pk
499+ | Some (_ , payload_kind ) -> Pbrt.Decoder. skip d payload_kind
500+ done ;
501+ (v : entity_ref )
0 commit comments