use json_in_type::*;
#[test]
fn test_nested_macro() {
assert_eq!("[{}]", json_list![json_object! {}].to_json_string());
assert_eq!("[{}]", json_list![json_object! {},].to_json_string());
assert_eq!(
r#"[{"ok":true}]"#,
json_list![json_object! {ok:true}].to_json_string()
);
assert_eq!(
r#"[{"a":0,"b":0}]"#,
json_list![json_object! {a:0,b:0}].to_json_string()
);
assert_eq!(
r#"[{"a":0,"b":0},{"a":0,"b":0}]"#,
json_list![json_object! {a:0,b:0}, json_object! {a:0,b:0},].to_json_string()
);
}
#[test]
fn test_mem_size() {
let value_count: u8 = 3;
let (val1, val2, val3): (i8, i8, i8) = (42, -42, 66);
let small_object = json_object! {
value_count,
values: json_list![
json_object! {ok:true, value: val1},
json_object! {ok:true, value: val2},
json_object! {ok:true, value: val3},
]
};
assert_eq!(4, ::std::mem::size_of_val(&small_object));
}
#[test]
fn mem_size_example() {
let (result_count, answer) = (1u8, 42u8);
let my_val = json_object! {
result_count,
errors: null,
results: json_list![
json_object!{answer, ok: true}
]
};
assert_eq!(2, ::std::mem::size_of_val(&my_val));
assert_eq!(
r#"{"result_count":1,"errors":null,"results":[{"answer":42,"ok":true}]}"#,
my_val.to_json_string()
);
}
#[test]
fn handwritten_equivalent() {
fn write_obj_bad(value: i32) -> String {
format!("{{\"value\":{}}}", value)
}
fn write_obj_good(value: i32) -> String {
(json_object! {value}).to_json_string()
}
assert_eq!(write_obj_bad(42), write_obj_good(42));
}