diff options
author | Sam Scott <sam@osohq.com> | 2020-12-06 23:43:32 -0500 |
---|---|---|
committer | Sam Scott <sam@osohq.com> | 2020-12-06 23:43:48 -0500 |
commit | b7b2520107ecfca77520151c6dc3002442bf0f0b (patch) | |
tree | be49c18915bac69746fcbc2bfb3641b3994a83d1 /tests | |
parent | 3f77d51edcc0575df5204152cb0dd960604244dc (diff) |
Serialize bytes as percent-encoded data.
Fixes #40.
Thanks to @faulesocke for reporting.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_deserialize.rs | 3 | ||||
-rw-r--r-- | tests/test_serialize.rs | 24 |
2 files changed, 24 insertions, 3 deletions
diff --git a/tests/test_deserialize.rs b/tests/test_deserialize.rs index 68395d5..a620828 100644 --- a/tests/test_deserialize.rs +++ b/tests/test_deserialize.rs @@ -639,9 +639,6 @@ fn deserialize_plus() { } #[test] -fn deserialize_vec_of_structs() {} - -#[test] fn deserialize_map_with_unit_enum_keys() { #[derive(Deserialize, Eq, PartialEq, Hash)] enum Operator { diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs index 8aecfe3..c3c63fd 100644 --- a/tests/test_serialize.rs +++ b/tests/test_serialize.rs @@ -156,3 +156,27 @@ fn serialize_map_with_unit_enum_keys() { assert!(query == "point[Lt]=321&point[Gt]=123" || query == "point[Gt]=123&point[Lt]=321"); } + +#[test] +fn serialize_bytes() { + struct Bytes(&'static [u8]); + + #[derive(Serialize)] + struct Query { + bytes: Bytes, + } + + + impl serde::Serialize for Bytes + { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: serde::Serializer, + { + serializer.serialize_bytes(self.0) + } + } + let bytes = Bytes(b"hello, world!"); + let s = qs::to_string(&Query { bytes }).unwrap(); + assert_eq!(s, "bytes=hello%2C+world%21"); +}
\ No newline at end of file |