spectec_ast_decode/
bool.rs

1impl crate::Decode for bool {
2    fn decode<'a, I: Iterator<Item = &'a sexpr_parse::SExprItem>>(
3        items: &mut std::iter::Peekable<I>,
4    ) -> crate::Result<Self> {
5        match items.next() {
6            Some(sexpr_parse::SExprItem::Atom(t)) => {
7                t.parse().map_err(crate::Error::parse_bool_err::<Self>)
8            }
9            Some(item) => Err(crate::Error::cannot_decode_sexpr::<Self>(item)),
10            None => Err(crate::Error::required_missing_sexpr::<Self>()),
11        }
12    }
13}