1+ use crate :: protobuf:: view_protobuf:: tags;
12/// Parsed protobuf message => YAML value
23use protobuf:: descriptor:: field_descriptor_proto:: Type ;
34use protobuf:: descriptor:: field_descriptor_proto:: Type :: {
@@ -7,10 +8,9 @@ use protobuf::reflect::{ReflectFieldRef, ReflectValueRef};
78use protobuf:: MessageDyn ;
89use serde_yaml:: value:: TaggedValue ;
910use serde_yaml:: { Mapping , Number , Value } ;
10- use std:: fmt:: Write ;
1111use std:: ops:: Deref ;
1212
13- pub ( crate ) fn message_to_yaml ( message : & dyn MessageDyn ) -> Value {
13+ pub ( super ) fn message_to_yaml ( message : & dyn MessageDyn ) -> Value {
1414 let mut ret = Mapping :: new ( ) ;
1515
1616 for field in message. descriptor_dyn ( ) . fields ( ) {
@@ -28,7 +28,7 @@ pub(crate) fn message_to_yaml(message: &dyn MessageDyn) -> Value {
2828 let value = match field. get_reflect ( message) {
2929 ReflectFieldRef :: Optional ( x) => {
3030 if let Some ( x) = x. value ( ) {
31- primitive_type_to_yaml ( x, field_type)
31+ value_to_yaml ( x, field_type)
3232 } else {
3333 continue ;
3434 }
@@ -39,7 +39,7 @@ pub(crate) fn message_to_yaml(message: &dyn MessageDyn) -> Value {
3939 }
4040 Value :: Sequence (
4141 x. into_iter ( )
42- . map ( |x| primitive_type_to_yaml ( x, field_type) )
42+ . map ( |x| value_to_yaml ( x, field_type) )
4343 . collect ( ) ,
4444 )
4545 }
@@ -49,12 +49,7 @@ pub(crate) fn message_to_yaml(message: &dyn MessageDyn) -> Value {
4949 }
5050 Value :: Mapping (
5151 x. into_iter ( )
52- . map ( |( k, v) | {
53- (
54- primitive_type_to_yaml ( k, field_type) ,
55- primitive_type_to_yaml ( v, field_type) ,
56- )
57- } )
52+ . map ( |( k, v) | ( value_to_yaml ( k, field_type) , value_to_yaml ( v, field_type) ) )
5853 . collect ( ) ,
5954 )
6055 }
@@ -64,7 +59,7 @@ pub(crate) fn message_to_yaml(message: &dyn MessageDyn) -> Value {
6459 Value :: Mapping ( ret)
6560}
6661
67- fn primitive_type_to_yaml ( x : ReflectValueRef , field_type : Type ) -> Value {
62+ fn value_to_yaml ( x : ReflectValueRef , field_type : Type ) -> Value {
6863 match x {
6964 ReflectValueRef :: U32 ( x) => tag_number ( Value :: Number ( Number :: from ( x) ) , field_type) ,
7065 ReflectValueRef :: U64 ( x) => tag_number ( Value :: Number ( Number :: from ( x) ) , field_type) ,
@@ -75,8 +70,8 @@ fn primitive_type_to_yaml(x: ReflectValueRef, field_type: Type) -> Value {
7570 ReflectValueRef :: Bool ( x) => Value :: from ( x) ,
7671 ReflectValueRef :: String ( x) => Value :: from ( x) ,
7772 ReflectValueRef :: Bytes ( x) => Value :: Tagged ( Box :: new ( TaggedValue {
78- tag : crate :: protobuf :: view_protobuf :: tags:: BINARY . clone ( ) ,
79- value : Value :: String ( bytes_to_hex_string ( x) ) ,
73+ tag : tags:: BINARY . clone ( ) ,
74+ value : Value :: String ( data_encoding :: HEXLOWER . encode ( x) ) ,
8075 } ) ) ,
8176 ReflectValueRef :: Enum ( descriptor, i) => descriptor
8277 . value_by_number ( i)
@@ -89,26 +84,17 @@ fn primitive_type_to_yaml(x: ReflectValueRef, field_type: Type) -> Value {
8984fn tag_number ( value : Value , field_type : Type ) -> Value {
9085 match field_type {
9186 TYPE_UINT64 => Value :: Tagged ( Box :: new ( TaggedValue {
92- tag : crate :: protobuf :: view_protobuf :: tags:: VARINT . clone ( ) ,
87+ tag : tags:: VARINT . clone ( ) ,
9388 value,
9489 } ) ) ,
9590 TYPE_FIXED64 => Value :: Tagged ( Box :: new ( TaggedValue {
96- tag : crate :: protobuf :: view_protobuf :: tags:: FIXED64 . clone ( ) ,
91+ tag : tags:: FIXED64 . clone ( ) ,
9792 value,
9893 } ) ) ,
9994 TYPE_FIXED32 => Value :: Tagged ( Box :: new ( TaggedValue {
100- tag : crate :: protobuf :: view_protobuf :: tags:: FIXED32 . clone ( ) ,
95+ tag : tags:: FIXED32 . clone ( ) ,
10196 value,
10297 } ) ) ,
10398 _ => value,
10499 }
105100}
106-
107- // Convert length-delimited protobuf data to a hex string
108- fn bytes_to_hex_string ( bytes : & [ u8 ] ) -> String {
109- let mut result = String :: with_capacity ( bytes. len ( ) * 2 ) ;
110- for b in bytes {
111- let _ = write ! ( result, "{:02x}" , b) ;
112- }
113- result
114- }
0 commit comments