Added val() function to KeyTreeRef.
[?]
Jun 28, 2021, 7:35 AM
BRO5BHI2M7DT5ERR5TXETFDJCE2XCFK7XGBWVJEFDK6LCHCIZKUACDependencies
- [2]
YJVNXWNHminor - [3]
K5VHGRGGAdd serialization. - [4]
6ZJX2OQVFirst commit - [5]
JUK3ONMUFixed comment parsing bug. - [6]
VDFODD2FAdded line to BadIndent error.
Change contents
- edit in src/lib.rs at line 3
use std::str::FromStr; - replacement in src/lib.rs at line 161
return Some(())Some(())},None => None,}}fn peek(&self) -> Option<()> {match self.top_token().next() {Some(_) => Some(()),None => None,}}pub fn assert_unique_top_token(&self) -> Result<()> {match self.peek() {None => Ok(()),_ => Err(Error::new(ErrorKind::EUniqueTokenFMany)),}}pub fn val<T>(&self, key_path: &str) -> Result<T>whereT: FromStr,KeyTreeRef<'a>: TryInto<T>,KeyTreeRef<'a>: TryInto<T, Error = Error>,{let path = KeyPath::from_str(key_path);let kt = self.recurse(&path)?;kt.assert_unique_top_token()?;match kt.top_token() {Token::KeyValue { key, value, .. } => {match T::from_str(value) {Ok(t) => Ok(t),Err(err) => {Err(Error::new(ErrorKind::FromStr(format!("{}: {}", key, value),format!("{}", kt.1),)))},} - replacement in src/lib.rs at line 202
None => return None,_ => Err(Error::new(ErrorKind::EUniqueTokenFMany)), - edit in src/lib.rs at line 206
- replacement in src/lib.rs at line 216[4.23672]→[4.23672:23753](∅→∅),[4.23753]→[2.338:373](∅→∅),[2.373]→[4.23820:23894](∅→∅),[4.23820]→[4.23820:23894](∅→∅)
// Check that top token is uniquematch kt.top_token().next() {None => kt.try_into(),_ => Err(Error::new(ErrorKind::EUniqueTokenFMany)),}kt.assert_unique_top_token()?;kt.try_into() - replacement in src/into.rs at line 63
Err(Error::new(ErrorKind::FailedFromStr(Err(Error::new(ErrorKind::FromStr( - edit in src/into.rs at line 66
into_type.to_string(), - replacement in src/error.rs at line 55
// `FromStr(value)` failed (key/value pair as string, position as string, into_type as string)FailedFromStr(String, String, String),// `FromStr(keyval, pos)FromStr(String, String), - replacement in src/error.rs at line 116
ErrorKind::FailedFromStr(_, _, _) => None,ErrorKind::FromStr(_, _) => None, - replacement in src/error.rs at line 148
ErrorKind::FailedFromStr(token, pos, into_type) => {ErrorKind::FromStr(token, pos) => { - replacement in src/error.rs at line 151
"Error: Couldn't read string into type {} at {}: \"{}\".",into_type,"Error: Couldn't parse string at {}: \"{}\".", - edit in src/error.rs at line 179
ErrorKind::FailedFromStr(token, pos, into_type) => {write!(f,"Error: Couldn't read string into type {} at {}: \"{}\".",into_type,pos,token,)}, - replacement in src/error.rs at line 393
ErrorKind::FailedFromStr(String::new(), String::new(), String::new()),ErrorKind::FromStr(String::new(), String::new(), String::new()), - replacement in examples/hobbit/src/main.rs at line 31
name: self.at("hobbit::name")?,age: self.at("hobbit::age")?,name: self.val("hobbit::name")?,age: self.val("hobbit::age")?,