diff options
| author | Philipp A | 2023-12-28 15:29:19 +0100 | 
|---|---|---|
| committer | GitHub | 2023-12-28 15:29:19 +0100 | 
| commit | 2a76f2dde6533c09f8e93b44d1f214a105d9c5c2 (patch) | |
| tree | 84d87ba7e14e86dbba43f2f46f9723c823631ecd /parser/src/pair_ext_parse.rs | |
| parent | c0441bff302e724bb8f98420459a2c672e2286c6 (diff) | |
| download | rust-rst-2a76f2dde6533c09f8e93b44d1f214a105d9c5c2.tar.bz2 | |
Format (#38)
Diffstat (limited to 'parser/src/pair_ext_parse.rs')
| -rw-r--r-- | parser/src/pair_ext_parse.rs | 44 | 
1 files changed, 32 insertions, 12 deletions
| diff --git a/parser/src/pair_ext_parse.rs b/parser/src/pair_ext_parse.rs index fb5ba6b..cbb51b0 100644 --- a/parser/src/pair_ext_parse.rs +++ b/parser/src/pair_ext_parse.rs @@ -1,21 +1,41 @@  use std::str::FromStr; -use pest::Span; +use pest::error::{Error, ErrorVariant};  use pest::iterators::Pair; -use pest::error::{Error,ErrorVariant}; - +use pest::Span; -pub trait PairExt<R> where R: pest::RuleType { -	fn parse<T, E>(&self) -> Result<T, Box<Error<R>>> where T: FromStr<Err = E>, E: ToString; +pub trait PairExt<R> +where +    R: pest::RuleType, +{ +    fn parse<T, E>(&self) -> Result<T, Box<Error<R>>> +    where +        T: FromStr<Err = E>, +        E: ToString;  } -impl<'l, R> PairExt<R> for Pair<'l, R> where R: pest::RuleType { -	fn parse<T, E>(&self) -> Result<T, Box<Error<R>>> where T: FromStr<Err = E>, E: ToString { -		self.as_str().parse().map_err(|e| to_parse_error(self.as_span(), &e)) -	} +impl<'l, R> PairExt<R> for Pair<'l, R> +where +    R: pest::RuleType, +{ +    fn parse<T, E>(&self) -> Result<T, Box<Error<R>>> +    where +        T: FromStr<Err = E>, +        E: ToString, +    { +        self.as_str() +            .parse() +            .map_err(|e| to_parse_error(self.as_span(), &e)) +    }  } -pub(crate) fn to_parse_error<E, R>(span: Span, e: &E) -> Box<Error<R>> where E: ToString, R: pest::RuleType { -	let var: ErrorVariant<R> = ErrorVariant::CustomError { message: e.to_string() }; -	Box::new(Error::new_from_span(var, span)) +pub(crate) fn to_parse_error<E, R>(span: Span, e: &E) -> Box<Error<R>> +where +    E: ToString, +    R: pest::RuleType, +{ +    let var: ErrorVariant<R> = ErrorVariant::CustomError { +        message: e.to_string(), +    }; +    Box::new(Error::new_from_span(var, span))  } | 
