forked from not-fl3/nanoserde
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathser_de.rs
32 lines (27 loc) · 874 Bytes
/
ser_de.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use nanoserde::{DeBin, DeJson, SerBin, SerJson};
#[test]
fn ser_de() {
#[derive(DeBin, SerBin, DeJson, SerJson, PartialEq)]
pub struct Test {
pub a: i32,
pub b: f32,
c: Option<String>,
d: Option<String>,
e: Option<std::collections::HashMap<String, String>>,
}
let mut map = std::collections::HashMap::new();
map.insert("a".to_string(), "b".to_string());
let test: Test = Test {
a: 1,
b: 2.,
c: Some("asd".to_string()),
d: None,
e: Some(map),
};
let bytes = SerBin::serialize_bin(&test);
let test_deserialized = DeBin::deserialize_bin(&bytes).unwrap();
assert!(test == test_deserialized);
let bytes = SerJson::serialize_json(&test);
let test_deserialized = DeJson::deserialize_json(&bytes).unwrap();
assert!(test == test_deserialized);
}