use serde::de::*;
pub fn bool_deserializer<'de, D>(d: D) -> Result<bool, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(d)?;
match &s[..] {
"true" => Ok(true),
"false" => Ok(false),
other => Err(D::Error::custom(format!(
"got {}, but expected `true` or `false`",
other
))),
}
}