diff options
Diffstat (limited to 'vendor/toml_edit/src/parser/mod.rs')
-rw-r--r-- | vendor/toml_edit/src/parser/mod.rs | 67 |
1 files changed, 15 insertions, 52 deletions
diff --git a/vendor/toml_edit/src/parser/mod.rs b/vendor/toml_edit/src/parser/mod.rs index b2ce4bc5e..1b3cc4f0c 100644 --- a/vendor/toml_edit/src/parser/mod.rs +++ b/vendor/toml_edit/src/parser/mod.rs @@ -1,8 +1,5 @@ #![allow(clippy::type_complexity)] -#[macro_use] -pub(crate) mod macros; - pub(crate) mod array; pub(crate) mod datetime; pub(crate) mod document; @@ -76,11 +73,13 @@ pub(crate) fn parse_value(raw: &str) -> Result<crate::Value, TomlError> { } pub(crate) mod prelude { - pub(crate) use super::errors::Context; - pub(crate) use super::errors::ParserError; - pub(crate) use super::errors::ParserValue; - pub(crate) use winnow::IResult; - pub(crate) use winnow::Parser as _; + pub(crate) use winnow::combinator::dispatch; + pub(crate) use winnow::error::ContextError; + pub(crate) use winnow::error::FromExternalError; + pub(crate) use winnow::error::StrContext; + pub(crate) use winnow::error::StrContextValue; + pub(crate) use winnow::PResult; + pub(crate) use winnow::Parser; pub(crate) type Input<'b> = winnow::Located<&'b winnow::BStr>; @@ -88,40 +87,6 @@ pub(crate) mod prelude { winnow::Located::new(winnow::BStr::new(s)) } - pub(crate) fn ok_error<I, O, E>( - res: IResult<I, O, E>, - ) -> Result<Option<(I, O)>, winnow::error::ErrMode<E>> { - match res { - Ok(ok) => Ok(Some(ok)), - Err(winnow::error::ErrMode::Backtrack(_)) => Ok(None), - Err(err) => Err(err), - } - } - - #[allow(dead_code)] - pub(crate) fn trace<I: std::fmt::Debug, O: std::fmt::Debug, E: std::fmt::Debug>( - context: impl std::fmt::Display, - mut parser: impl winnow::Parser<I, O, E>, - ) -> impl FnMut(I) -> IResult<I, O, E> { - static DEPTH: std::sync::atomic::AtomicUsize = std::sync::atomic::AtomicUsize::new(0); - move |input: I| { - let depth = DEPTH.fetch_add(1, std::sync::atomic::Ordering::SeqCst) * 2; - eprintln!("{:depth$}--> {} {:?}", "", context, input); - match parser.parse_next(input) { - Ok((i, o)) => { - DEPTH.fetch_sub(1, std::sync::atomic::Ordering::SeqCst); - eprintln!("{:depth$}<-- {} {:?}", "", context, i); - Ok((i, o)) - } - Err(err) => { - DEPTH.fetch_sub(1, std::sync::atomic::Ordering::SeqCst); - eprintln!("{:depth$}<-- {} {:?}", "", context, err); - Err(err) - } - } - } - } - #[cfg(not(feature = "unbounded"))] #[derive(Copy, Clone, Debug, Default)] pub(crate) struct RecursionCheck { @@ -140,18 +105,16 @@ pub(crate) mod prelude { pub(crate) fn recursing( mut self, - input: Input<'_>, - ) -> Result<Self, winnow::error::ErrMode<ParserError<'_>>> { + input: &mut Input<'_>, + ) -> Result<Self, winnow::error::ErrMode<ContextError>> { self.current += 1; if self.current < 128 { Ok(self) } else { - Err(winnow::error::ErrMode::Backtrack( - winnow::error::FromExternalError::from_external_error( - input, - winnow::error::ErrorKind::Eof, - super::errors::CustomError::RecursionLimitExceeded, - ), + Err(winnow::error::ErrMode::from_external_error( + input, + winnow::error::ErrorKind::Eof, + super::errors::CustomError::RecursionLimitExceeded, )) } } @@ -169,8 +132,8 @@ pub(crate) mod prelude { pub(crate) fn recursing( self, - _input: Input<'_>, - ) -> Result<Self, winnow::error::ErrMode<ParserError<'_>>> { + _input: &mut Input<'_>, + ) -> Result<Self, winnow::error::ErrMode<ContextError>> { Ok(self) } } |