summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ser/value.rs4
-rw-r--r--tests/test_serialize.rs24
2 files changed, 26 insertions, 2 deletions
diff --git a/src/ser/value.rs b/src/ser/value.rs
index 7a2ac42..d017242 100644
--- a/src/ser/value.rs
+++ b/src/ser/value.rs
@@ -51,8 +51,8 @@ impl<'key, 'target, Target> Serializer
type StructState = ();
type StructVariantState = ();
- fn serialize_bool(&mut self, _v: bool) -> Result<(), Error> {
- Err(Error::unsupported_value())
+ fn serialize_bool(&mut self, v: bool) -> Result<(), Error> {
+ self.append_pair(if v { "true" } else { "false" })
}
fn serialize_isize(&mut self, v: isize) -> Result<(), Error> {
diff --git a/tests/test_serialize.rs b/tests/test_serialize.rs
index 20592fc..b401ef9 100644
--- a/tests/test_serialize.rs
+++ b/tests/test_serialize.rs
@@ -25,3 +25,27 @@ fn serialize_option_map_string() {
serde_urlencoded::to_string(params),
Ok("first=hello&last=world".to_owned()));
}
+
+#[test]
+fn serialize_option_map_bool() {
+ let params = &[
+ ("one", Some(true)),
+ ("two", Some(false))
+ ];
+
+ assert_eq!(
+ serde_urlencoded::to_string(params),
+ Ok("one=true&two=false".to_owned()));
+}
+
+#[test]
+fn serialize_map_bool() {
+ let params = &[
+ ("one", true),
+ ("two", false)
+ ];
+
+ assert_eq!(
+ serde_urlencoded::to_string(params),
+ Ok("one=true&two=false".to_owned()));
+}