@@ -67,93 +67,96 @@ fn cbor_bytes_sz(bytes: Vec<u8>, sz: cbor_event::StringLenSz) -> Vec<u8> {
67
67
buf.finalize()
68
68
}
69
69
70
- fn print_cbor_types(obj_name: &str, vec: Vec<u8>) {
71
- use cbor_event::Type;
72
- let mut raw = cbor_event::de::Deserializer::from(vec);
73
- let mut lens = Vec::new();
74
- let consume_elem = |lens: &mut Vec<cbor_event::LenSz>| {
75
- if let Some(len) = lens.last_mut() {
76
- if let cbor_event::LenSz::Len(n, _) = len {
77
- *n -= 1;
70
+ #[cfg(test)]
71
+ mod tests {
72
+ fn print_cbor_types(obj_name: &str, vec: Vec<u8>) {
73
+ use cbor_event::Type;
74
+ let mut raw = cbor_event::de::Deserializer::from(vec);
75
+ let mut lens = Vec::new();
76
+ let consume_elem = |lens: &mut Vec<cbor_event::LenSz>| {
77
+ if let Some(len) = lens.last_mut() {
78
+ if let cbor_event::LenSz::Len(n, _) = len {
79
+ *n -= 1;
80
+ }
78
81
}
79
- }
80
- };
81
- let reduce_depth = |lens: &mut Vec<cbor_event::LenSz>| {
82
- while let Some(cbor_event::LenSz::Len(0, _)) = lens.last() {
83
- lens.pop();
84
- println!("{}}}", "\t".repeat(lens.len()));
85
- }
86
- };
87
- println!("{} = {{", obj_name);
88
- loop {
89
- print!("{}", "\t".repeat(lens.len()));
90
- match raw.cbor_type() {
91
- Err(_) => break,
92
- Ok(Type::UnsignedInteger) => {
93
- let (x, sz) = raw.unsigned_integer_sz().unwrap();
94
- println!("UINT({}, {:?})", x, sz);
95
- consume_elem(&mut lens);
96
- reduce_depth(&mut lens);
97
- },
98
- Ok(Type::NegativeInteger) => {
99
- let (x, sz) = raw.negative_integer_sz().unwrap();
100
- println!("NINT({}, {:?})", x, sz);
101
- consume_elem(&mut lens);
102
- reduce_depth(&mut lens);
103
- },
104
- Ok(Type::Bytes) => {
105
- let (x, sz) = raw.bytes_sz().unwrap();
106
- println!("BYTES({:?}, {:?})", x, sz);
107
- consume_elem(&mut lens);
108
- reduce_depth(&mut lens);
109
- },
110
- Ok(Type::Text) => {
111
- let (x, sz) = raw.text_sz().unwrap();
112
- println!("TEXT(\"{}\", {:?})", x, sz);
113
- consume_elem(&mut lens);
114
- reduce_depth(&mut lens);
115
- },
116
- Ok(Type::Array) => {
117
- let len = raw.array_sz().unwrap();
118
- println!("ARRAY({:?}) {{", len);
119
- consume_elem(&mut lens);
120
- lens.push(len);
121
- if let cbor_event::LenSz::Len(0, _sz) = len {
82
+ };
83
+ let reduce_depth = |lens: &mut Vec<cbor_event::LenSz>| {
84
+ while let Some(cbor_event::LenSz::Len(0, _)) = lens.last() {
85
+ lens.pop();
86
+ println!("{}}}", "\t".repeat(lens.len()));
87
+ }
88
+ };
89
+ println!("{} = {{", obj_name);
90
+ loop {
91
+ print!("{}", "\t".repeat(lens.len()));
92
+ match raw.cbor_type() {
93
+ Err(_) => break,
94
+ Ok(Type::UnsignedInteger) => {
95
+ let (x, sz) = raw.unsigned_integer_sz().unwrap();
96
+ println!("UINT({}, {:?})", x, sz);
97
+ consume_elem(&mut lens);
122
98
reduce_depth(&mut lens);
123
- }
124
- },
125
- Ok(Type::Map) => {
126
- let len = raw.map_sz().unwrap();
127
- println!("MAP({:?}) {{", len);
128
- consume_elem(&mut lens);
129
- lens.push(match len {
130
- cbor_event::LenSz::Len(n, sz) => cbor_event::LenSz::Len(2 * n, sz),
131
- cbor_event::LenSz::Indefinite => cbor_event::LenSz::Indefinite,
132
- });
133
- if let cbor_event::LenSz::Len(0, _sz) = len {
99
+ },
100
+ Ok(Type::NegativeInteger) => {
101
+ let (x, sz) = raw.negative_integer_sz().unwrap();
102
+ println!("NINT({}, {:?})", x, sz);
103
+ consume_elem(&mut lens);
134
104
reduce_depth(&mut lens);
135
- }
136
- },
137
- Ok(Type::Tag) => {
138
- let (tag, sz) = raw.tag_sz().unwrap();
139
- println!("TAG({}, {:?})", tag, sz);
140
- },
141
- Ok(Type::Special) => {
142
- let special = raw.special().unwrap();
143
- println!("SPECIAL({:?})", special);
144
- if special == cbor_event::Special::Break {
145
- if let Some(cbor_event::LenSz::Indefinite) = lens.last() {
146
- lens.pop();
105
+ },
106
+ Ok(Type::Bytes) => {
107
+ let (x, sz) = raw.bytes_sz().unwrap();
108
+ println!("BYTES({:?}, {:?})", x, sz);
109
+ consume_elem(&mut lens);
110
+ reduce_depth(&mut lens);
111
+ },
112
+ Ok(Type::Text) => {
113
+ let (x, sz) = raw.text_sz().unwrap();
114
+ println!("TEXT(\"{}\", {:?})", x, sz);
115
+ consume_elem(&mut lens);
116
+ reduce_depth(&mut lens);
117
+ },
118
+ Ok(Type::Array) => {
119
+ let len = raw.array_sz().unwrap();
120
+ println!("ARRAY({:?}) {{", len);
121
+ consume_elem(&mut lens);
122
+ lens.push(len);
123
+ if let cbor_event::LenSz::Len(0, _sz) = len {
147
124
reduce_depth(&mut lens);
148
- } else {
149
- panic!("unexpected break");
150
125
}
151
- } else {
126
+ },
127
+ Ok(Type::Map) => {
128
+ let len = raw.map_sz().unwrap();
129
+ println!("MAP({:?}) {{", len);
152
130
consume_elem(&mut lens);
153
- reduce_depth(&mut lens);
154
- }
155
- },
131
+ lens.push(match len {
132
+ cbor_event::LenSz::Len(n, sz) => cbor_event::LenSz::Len(2 * n, sz),
133
+ cbor_event::LenSz::Indefinite => cbor_event::LenSz::Indefinite,
134
+ });
135
+ if let cbor_event::LenSz::Len(0, _sz) = len {
136
+ reduce_depth(&mut lens);
137
+ }
138
+ },
139
+ Ok(Type::Tag) => {
140
+ let (tag, sz) = raw.tag_sz().unwrap();
141
+ println!("TAG({}, {:?})", tag, sz);
142
+ },
143
+ Ok(Type::Special) => {
144
+ let special = raw.special().unwrap();
145
+ println!("SPECIAL({:?})", special);
146
+ if special == cbor_event::Special::Break {
147
+ if let Some(cbor_event::LenSz::Indefinite) = lens.last() {
148
+ lens.pop();
149
+ reduce_depth(&mut lens);
150
+ } else {
151
+ panic!("unexpected break");
152
+ }
153
+ } else {
154
+ consume_elem(&mut lens);
155
+ reduce_depth(&mut lens);
156
+ }
157
+ },
158
+ }
156
159
}
160
+ println!("}}");
157
161
}
158
- println!("}}");
159
162
}
0 commit comments