diff --git a/crates/specctra-core/src/read.rs b/crates/specctra-core/src/read.rs index 9b94b02..b77680d 100644 --- a/crates/specctra-core/src/read.rs +++ b/crates/specctra-core/src/read.rs @@ -66,7 +66,7 @@ impl ReadDsn for String { impl ReadDsn for char { fn read_dsn(tokenizer: &mut ListTokenizer) -> Result { let err = tokenizer.add_context(ParseError::Expected("a single character")); - let string = tokenizer.consume_token()?.expect_leaf()?; + let string = String::read_dsn(tokenizer)?; let mut it = string.chars(); let first = match it.next() { None => return Err(err), @@ -81,7 +81,7 @@ impl ReadDsn for char { impl ReadDsn for bool { fn read_dsn(tokenizer: &mut ListTokenizer) -> Result { - match tokenizer.consume_token()?.expect_leaf()?.as_str() { + match String::read_dsn(tokenizer)?.as_str() { "on" => Ok(true), "off" => Ok(false), _ => Err(tokenizer.add_context(ParseError::Expected("boolean"))), @@ -94,9 +94,7 @@ macro_rules! impl_ReadDsn_via_FromStr { ($(($t:ty, $name:expr));* $(;)?) => { $( impl ReadDsn for $t { fn read_dsn(tokenizer: &mut ListTokenizer) -> Result { - tokenizer - .consume_token()? - .expect_leaf()? + String::read_dsn(tokenizer)? .parse() .map_err(|_| tokenizer.add_context(ParseError::Expected($name))) }