@@ -86,8 +86,8 @@ impl<'de: 'a, 'a, 'b> de::Deserializer<'de> for &'a mut Deserializer<'b> {
86
86
let value = match * self . ast {
87
87
A :: Scalar ( ref pos, _, _, ref val) => {
88
88
match & val[ ..] {
89
- "true" => true ,
90
- "false" => false ,
89
+ "true" | "yes" | "on" | "y" | "1" => true ,
90
+ "false" | "no" | "off" | "n" | "0" => false ,
91
91
_ => {
92
92
return Err ( Error :: decode_error ( pos, & self . path ,
93
93
format ! ( "bad boolean {:?}" , val) ) ) ;
@@ -594,7 +594,15 @@ mod test {
594
594
#[ test]
595
595
fn decode_bool ( ) {
596
596
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 ) ;
597
601
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 ) ;
598
606
}
599
607
600
608
#[ test]
0 commit comments