@@ -57,6 +57,24 @@ pub struct TracerConfig {
5757 pub ( crate ) record_samples_for_newtype_structs : bool ,
5858 pub ( crate ) record_samples_for_tuple_structs : bool ,
5959 pub ( crate ) record_samples_for_structs : bool ,
60+ pub ( crate ) default_bool_value : bool ,
61+ pub ( crate ) default_u8_value : u8 ,
62+ pub ( crate ) default_u16_value : u16 ,
63+ pub ( crate ) default_u32_value : u32 ,
64+ pub ( crate ) default_u64_value : u64 ,
65+ pub ( crate ) default_u128_value : u128 ,
66+ pub ( crate ) default_i8_value : i8 ,
67+ pub ( crate ) default_i16_value : i16 ,
68+ pub ( crate ) default_i32_value : i32 ,
69+ pub ( crate ) default_i64_value : i64 ,
70+ pub ( crate ) default_i128_value : i128 ,
71+ pub ( crate ) default_f32_value : f32 ,
72+ pub ( crate ) default_f64_value : f64 ,
73+ pub ( crate ) default_char_value : char ,
74+ pub ( crate ) default_borrowed_str_value : & ' static str ,
75+ pub ( crate ) default_string_value : String ,
76+ pub ( crate ) default_borrowed_bytes_value : & ' static [ u8 ] ,
77+ pub ( crate ) default_byte_buf_value : Vec < u8 > ,
6078}
6179
6280impl Default for TracerConfig {
@@ -67,10 +85,38 @@ impl Default for TracerConfig {
6785 record_samples_for_newtype_structs : true ,
6886 record_samples_for_tuple_structs : false ,
6987 record_samples_for_structs : false ,
88+ default_bool_value : false ,
89+ default_u8_value : 0 ,
90+ default_u16_value : 0 ,
91+ default_u32_value : 0 ,
92+ default_u64_value : 0 ,
93+ default_u128_value : 0 ,
94+ default_i8_value : 0 ,
95+ default_i16_value : 0 ,
96+ default_i32_value : 0 ,
97+ default_i64_value : 0 ,
98+ default_i128_value : 0 ,
99+ default_f32_value : 0.0 ,
100+ default_f64_value : 0.0 ,
101+ default_char_value : 'A' ,
102+ default_borrowed_str_value : "" ,
103+ default_string_value : String :: new ( ) ,
104+ default_borrowed_bytes_value : b"" ,
105+ default_byte_buf_value : Vec :: new ( ) ,
70106 }
71107 }
72108}
73109
110+ macro_rules! define_default_value_setter {
111+ ( $method: ident, $ty: ty) => {
112+ /// The default serialized value for this primitive type.
113+ pub fn $method( mut self , value: $ty) -> Self {
114+ self . $method = value;
115+ self
116+ }
117+ } ;
118+ }
119+
74120impl TracerConfig {
75121 /// Whether to trace the human readable encoding of (de)serialization.
76122 #[ allow( clippy:: wrong_self_convention) ]
@@ -96,6 +142,25 @@ impl TracerConfig {
96142 self . record_samples_for_structs = value;
97143 self
98144 }
145+
146+ define_default_value_setter ! ( default_bool_value, bool ) ;
147+ define_default_value_setter ! ( default_u8_value, u8 ) ;
148+ define_default_value_setter ! ( default_u16_value, u16 ) ;
149+ define_default_value_setter ! ( default_u32_value, u32 ) ;
150+ define_default_value_setter ! ( default_u64_value, u64 ) ;
151+ define_default_value_setter ! ( default_u128_value, u128 ) ;
152+ define_default_value_setter ! ( default_i8_value, i8 ) ;
153+ define_default_value_setter ! ( default_i16_value, i16 ) ;
154+ define_default_value_setter ! ( default_i32_value, i32 ) ;
155+ define_default_value_setter ! ( default_i64_value, i64 ) ;
156+ define_default_value_setter ! ( default_i128_value, i128 ) ;
157+ define_default_value_setter ! ( default_f32_value, f32 ) ;
158+ define_default_value_setter ! ( default_f64_value, f64 ) ;
159+ define_default_value_setter ! ( default_char_value, char ) ;
160+ define_default_value_setter ! ( default_borrowed_str_value, & ' static str ) ;
161+ define_default_value_setter ! ( default_string_value, String ) ;
162+ define_default_value_setter ! ( default_borrowed_bytes_value, & ' static [ u8 ] ) ;
163+ define_default_value_setter ! ( default_byte_buf_value, Vec <u8 >) ;
99164}
100165
101166impl Tracer {
0 commit comments