Skip to content

Commit a314885

Browse files
committed
More options for booleans supported
1 parent b467588 commit a314885

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/de.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ impl<'de: 'a, 'a, 'b> de::Deserializer<'de> for &'a mut Deserializer<'b> {
8686
let value = match *self.ast {
8787
A::Scalar(ref pos, _, _, ref val) => {
8888
match &val[..] {
89-
"true" => true,
90-
"false" => false,
89+
"true"|"yes"|"on"|"y"|"1" => true,
90+
"false"|"no"|"off"|"n"|"0" => false,
9191
_ => {
9292
return Err(Error::decode_error(pos, &self.path,
9393
format!("bad boolean {:?}", val)));
@@ -594,7 +594,15 @@ mod test {
594594
#[test]
595595
fn decode_bool() {
596596
assert_eq!(decode::<bool>("true"), true);
597+
assert_eq!(decode::<bool>("yes"), true);
598+
assert_eq!(decode::<bool>("y"), true);
599+
assert_eq!(decode::<bool>("on"), true);
600+
assert_eq!(decode::<bool>("1"), true);
597601
assert_eq!(decode::<bool>("false"), false);
602+
assert_eq!(decode::<bool>("no"), false);
603+
assert_eq!(decode::<bool>("n"), false);
604+
assert_eq!(decode::<bool>("off"), false);
605+
assert_eq!(decode::<bool>("0"), false);
598606
}
599607

600608
#[test]

0 commit comments

Comments
 (0)