diff options
author | Sam Scott <sam@osohq.com> | 2022-07-13 10:30:29 -0500 |
---|---|---|
committer | Sam Scott <sam@osohq.com> | 2022-07-13 10:30:29 -0500 |
commit | c446c5f6d8853e63dca8e666bd502c8e5fa5337d (patch) | |
tree | 8e3411eacae71553307e8b509d3471d780483cee /tests | |
parent | 0459c5e88e90e297ddb916ab96e62cdfaf7c3414 (diff) |
Add a standalone serializer.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_serialize.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs index ddb7277..b7c4a21 100644 --- a/tests/test_serialize.rs +++ b/tests/test_serialize.rs @@ -202,3 +202,37 @@ fn serialize_hashmap_keys() { || s == "attrs[key+2%21]=val+2&attrs[key+1%21]=val+1" ); } + +#[test] +fn test_serializer() { + use serde::Serialize; + #[derive(Serialize, Debug, Clone)] + struct Query { + a: Vec<u8>, + b: &'static str, + } + + let mut writer = Vec::new(); + { + let serializer = &mut qs::Serializer::new(&mut writer); + let q = Query { + a: vec![0, 1], + b: "b", + }; + q.serialize(serializer).unwrap(); + } + + assert_eq!(writer, b"a[0]=0&a[1]=1&b=b"); + writer.clear(); + + { + let serializer = &mut qs::Serializer::new(&mut writer); + let q = Query { + a: vec![3, 2], + b: "a", + }; + q.serialize(serializer).unwrap(); + } + + assert_eq!(writer, b"a[0]=3&a[1]=2&b=a"); +} |