From f60e4fd093fa1fbf8351c24d5e5711de142181a7 Mon Sep 17 00:00:00 2001 From: MaxV <60802079+maxv-rust@users.noreply.github.com> Date: Wed, 8 Apr 2020 23:02:57 -0700 Subject: [PATCH] Allow serialization of unit type --- src/ser/mod.rs | 4 ++-- tests/test_deserialize.rs | 5 +++++ tests/test_serialize.rs | 5 +++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/ser/mod.rs b/src/ser/mod.rs index a600552b..4e21fb8d 100644 --- a/src/ser/mod.rs +++ b/src/ser/mod.rs @@ -230,9 +230,9 @@ where Err(Error::top_level()) } - /// Returns an error. + /// Returns `Ok`. fn serialize_unit(self) -> Result { - Err(Error::top_level()) + Ok(self.urlencoder) } /// Returns `Ok`. diff --git a/tests/test_deserialize.rs b/tests/test_deserialize.rs index 69105995..bb276217 100644 --- a/tests/test_deserialize.rs +++ b/tests/test_deserialize.rs @@ -83,3 +83,8 @@ fn deserialize_unit_enum() { Ok(result) ); } + +#[test] +fn deserialize_unit_type() { + assert_eq!(serde_urlencoded::from_str(""), Ok(())); +} diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs index b0276d2e..60c6ff74 100644 --- a/tests/test_serialize.rs +++ b/tests/test_serialize.rs @@ -81,3 +81,8 @@ struct Unit; fn serialize_unit_struct() { assert_eq!(serde_urlencoded::to_string(Unit), Ok("".to_owned())); } + +#[test] +fn serialize_unit_type() { + assert_eq!(serde_urlencoded::to_string(()), Ok("".to_owned())); +}