summaryrefslogtreecommitdiffstats
path: root/vendor/winnow/src/sequence
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winnow/src/sequence')
-rw-r--r--vendor/winnow/src/sequence/mod.rs169
-rw-r--r--vendor/winnow/src/sequence/tests.rs211
2 files changed, 0 insertions, 380 deletions
diff --git a/vendor/winnow/src/sequence/mod.rs b/vendor/winnow/src/sequence/mod.rs
deleted file mode 100644
index 68f772384..000000000
--- a/vendor/winnow/src/sequence/mod.rs
+++ /dev/null
@@ -1,169 +0,0 @@
-//! Combinators applying parsers in sequence
-
-#[cfg(test)]
-mod tests;
-
-use crate::error::ParseError;
-use crate::stream::Stream;
-use crate::trace::trace;
-use crate::Parser;
-
-/// Apply two parsers, only returning the output from the second.
-///
-/// # Arguments
-/// * `first` The opening parser.
-/// * `second` The second parser to get object.
-///
-/// # Example
-///
-/// ```rust
-/// # use winnow::{error::ErrMode, error::ErrorKind, error::Error, error::Needed};
-/// # use winnow::prelude::*;
-/// # use winnow::error::Needed::Size;
-/// use winnow::sequence::preceded;
-/// use winnow::bytes::tag;
-///
-/// let mut parser = preceded("abc", "efg");
-///
-/// assert_eq!(parser.parse_next("abcefg"), Ok(("", "efg")));
-/// assert_eq!(parser.parse_next("abcefghij"), Ok(("hij", "efg")));
-/// assert_eq!(parser.parse_next(""), Err(ErrMode::Backtrack(Error::new("", ErrorKind::Tag))));
-/// assert_eq!(parser.parse_next("123"), Err(ErrMode::Backtrack(Error::new("123", ErrorKind::Tag))));
-/// ```
-#[doc(alias = "ignore_then")]
-pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>(
- mut first: F,
- mut second: G,
-) -> impl Parser<I, O2, E>
-where
- I: Stream,
- F: Parser<I, O1, E>,
- G: Parser<I, O2, E>,
-{
- trace("preceded", move |input: I| {
- let (input, _) = first.parse_next(input)?;
- second.parse_next(input)
- })
-}
-
-/// Apply two parsers, only returning the output of the first.
-///
-/// # Arguments
-/// * `first` The first parser to apply.
-/// * `second` The second parser to match an object.
-///
-/// # Example
-///
-/// ```rust
-/// # use winnow::{error::ErrMode, error::ErrorKind, error::Error, error::Needed};
-/// # use winnow::prelude::*;
-/// # use winnow::error::Needed::Size;
-/// use winnow::sequence::terminated;
-/// use winnow::bytes::tag;
-///
-/// let mut parser = terminated("abc", "efg");
-///
-/// assert_eq!(parser.parse_next("abcefg"), Ok(("", "abc")));
-/// assert_eq!(parser.parse_next("abcefghij"), Ok(("hij", "abc")));
-/// assert_eq!(parser.parse_next(""), Err(ErrMode::Backtrack(Error::new("", ErrorKind::Tag))));
-/// assert_eq!(parser.parse_next("123"), Err(ErrMode::Backtrack(Error::new("123", ErrorKind::Tag))));
-/// ```
-#[doc(alias = "then_ignore")]
-pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>(
- mut first: F,
- mut second: G,
-) -> impl Parser<I, O1, E>
-where
- I: Stream,
- F: Parser<I, O1, E>,
- G: Parser<I, O2, E>,
-{
- trace("terminated", move |input: I| {
- let (input, o1) = first.parse_next(input)?;
- second.parse_next(input).map(|(i, _)| (i, o1))
- })
-}
-
-/// Apply three parsers, only returning the values of the first and third.
-///
-/// # Arguments
-/// * `first` The first parser to apply.
-/// * `sep` The separator parser to apply.
-/// * `second` The second parser to apply.
-///
-/// # Example
-///
-/// ```rust
-/// # use winnow::{error::ErrMode, error::ErrorKind, error::Error, error::Needed};
-/// # use winnow::error::Needed::Size;
-/// # use winnow::prelude::*;
-/// use winnow::sequence::separated_pair;
-/// use winnow::bytes::tag;
-///
-/// let mut parser = separated_pair("abc", "|", "efg");
-///
-/// assert_eq!(parser.parse_next("abc|efg"), Ok(("", ("abc", "efg"))));
-/// assert_eq!(parser.parse_next("abc|efghij"), Ok(("hij", ("abc", "efg"))));
-/// assert_eq!(parser.parse_next(""), Err(ErrMode::Backtrack(Error::new("", ErrorKind::Tag))));
-/// assert_eq!(parser.parse_next("123"), Err(ErrMode::Backtrack(Error::new("123", ErrorKind::Tag))));
-/// ```
-pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>(
- mut first: F,
- mut sep: G,
- mut second: H,
-) -> impl Parser<I, (O1, O3), E>
-where
- I: Stream,
- F: Parser<I, O1, E>,
- G: Parser<I, O2, E>,
- H: Parser<I, O3, E>,
-{
- trace("separated_pair", move |input: I| {
- let (input, o1) = first.parse_next(input)?;
- let (input, _) = sep.parse_next(input)?;
- second.parse_next(input).map(|(i, o2)| (i, (o1, o2)))
- })
-}
-
-/// Apply three parsers, only returning the output of the second.
-///
-/// # Arguments
-/// * `first` The first parser to apply and discard.
-/// * `second` The second parser to apply.
-/// * `third` The third parser to apply and discard.
-///
-/// # Example
-///
-/// ```rust
-/// # use winnow::{error::ErrMode, error::ErrorKind, error::Error, error::Needed};
-/// # use winnow::error::Needed::Size;
-/// # use winnow::prelude::*;
-/// use winnow::sequence::delimited;
-/// use winnow::bytes::tag;
-///
-/// let mut parser = delimited("(", "abc", ")");
-///
-/// assert_eq!(parser.parse_next("(abc)"), Ok(("", "abc")));
-/// assert_eq!(parser.parse_next("(abc)def"), Ok(("def", "abc")));
-/// assert_eq!(parser.parse_next(""), Err(ErrMode::Backtrack(Error::new("", ErrorKind::Tag))));
-/// assert_eq!(parser.parse_next("123"), Err(ErrMode::Backtrack(Error::new("123", ErrorKind::Tag))));
-/// ```
-#[doc(alias = "between")]
-#[doc(alias = "padded")]
-pub fn delimited<I, O1, O2, O3, E: ParseError<I>, F, G, H>(
- mut first: F,
- mut second: G,
- mut third: H,
-) -> impl Parser<I, O2, E>
-where
- I: Stream,
- F: Parser<I, O1, E>,
- G: Parser<I, O2, E>,
- H: Parser<I, O3, E>,
-{
- trace("delimited", move |input: I| {
- let (input, _) = first.parse_next(input)?;
- let (input, o2) = second.parse_next(input)?;
- third.parse_next(input).map(|(i, _)| (i, o2))
- })
-}
diff --git a/vendor/winnow/src/sequence/tests.rs b/vendor/winnow/src/sequence/tests.rs
deleted file mode 100644
index 77fa75df6..000000000
--- a/vendor/winnow/src/sequence/tests.rs
+++ /dev/null
@@ -1,211 +0,0 @@
-use super::*;
-
-use crate::error::{ErrMode, ErrorKind, Needed};
-use crate::IResult;
-use crate::Partial;
-
-#[derive(PartialEq, Eq, Debug)]
-struct B {
- a: u8,
- b: u8,
-}
-
-#[derive(PartialEq, Eq, Debug)]
-struct C {
- a: u8,
- b: Option<u8>,
-}
-
-#[test]
-fn complete() {
- fn err_test(i: &[u8]) -> IResult<&[u8], &[u8]> {
- let (i, _) = "ijkl".parse_next(i)?;
- "mnop".parse_next(i)
- }
- let a = &b"ijklmn"[..];
-
- let res_a = err_test(a);
- assert_eq!(
- res_a,
- Err(ErrMode::Backtrack(error_position!(
- &b"mn"[..],
- ErrorKind::Tag
- )))
- );
-}
-
-#[test]
-fn separated_pair_test() {
- #[allow(clippy::type_complexity)]
- fn sep_pair_abc_def(i: Partial<&[u8]>) -> IResult<Partial<&[u8]>, (&[u8], &[u8])> {
- separated_pair("abc", ",", "def").parse_next(i)
- }
-
- assert_eq!(
- sep_pair_abc_def(Partial::new(&b"abc,defghijkl"[..])),
- Ok((Partial::new(&b"ghijkl"[..]), (&b"abc"[..], &b"def"[..])))
- );
- assert_eq!(
- sep_pair_abc_def(Partial::new(&b"ab"[..])),
- Err(ErrMode::Incomplete(Needed::new(1)))
- );
- assert_eq!(
- sep_pair_abc_def(Partial::new(&b"abc,d"[..])),
- Err(ErrMode::Incomplete(Needed::new(2)))
- );
- assert_eq!(
- sep_pair_abc_def(Partial::new(&b"xxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- sep_pair_abc_def(Partial::new(&b"xxx,def"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx,def"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- sep_pair_abc_def(Partial::new(&b"abc,xxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx"[..]),
- ErrorKind::Tag
- )))
- );
-}
-
-#[test]
-fn preceded_test() {
- fn preceded_abcd_efgh(i: Partial<&[u8]>) -> IResult<Partial<&[u8]>, &[u8]> {
- preceded("abcd", "efgh").parse_next(i)
- }
-
- assert_eq!(
- preceded_abcd_efgh(Partial::new(&b"abcdefghijkl"[..])),
- Ok((Partial::new(&b"ijkl"[..]), &b"efgh"[..]))
- );
- assert_eq!(
- preceded_abcd_efgh(Partial::new(&b"ab"[..])),
- Err(ErrMode::Incomplete(Needed::new(2)))
- );
- assert_eq!(
- preceded_abcd_efgh(Partial::new(&b"abcde"[..])),
- Err(ErrMode::Incomplete(Needed::new(3)))
- );
- assert_eq!(
- preceded_abcd_efgh(Partial::new(&b"xxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- preceded_abcd_efgh(Partial::new(&b"xxxxdef"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxxxdef"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- preceded_abcd_efgh(Partial::new(&b"abcdxxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx"[..]),
- ErrorKind::Tag
- )))
- );
-}
-
-#[test]
-fn terminated_test() {
- fn terminated_abcd_efgh(i: Partial<&[u8]>) -> IResult<Partial<&[u8]>, &[u8]> {
- terminated("abcd", "efgh").parse_next(i)
- }
-
- assert_eq!(
- terminated_abcd_efgh(Partial::new(&b"abcdefghijkl"[..])),
- Ok((Partial::new(&b"ijkl"[..]), &b"abcd"[..]))
- );
- assert_eq!(
- terminated_abcd_efgh(Partial::new(&b"ab"[..])),
- Err(ErrMode::Incomplete(Needed::new(2)))
- );
- assert_eq!(
- terminated_abcd_efgh(Partial::new(&b"abcde"[..])),
- Err(ErrMode::Incomplete(Needed::new(3)))
- );
- assert_eq!(
- terminated_abcd_efgh(Partial::new(&b"xxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- terminated_abcd_efgh(Partial::new(&b"xxxxdef"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxxxdef"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- terminated_abcd_efgh(Partial::new(&b"abcdxxxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxxx"[..]),
- ErrorKind::Tag
- )))
- );
-}
-
-#[test]
-fn delimited_test() {
- fn delimited_abc_def_ghi(i: Partial<&[u8]>) -> IResult<Partial<&[u8]>, &[u8]> {
- delimited("abc", "def", "ghi").parse_next(i)
- }
-
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"abcdefghijkl"[..])),
- Ok((Partial::new(&b"jkl"[..]), &b"def"[..]))
- );
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"ab"[..])),
- Err(ErrMode::Incomplete(Needed::new(1)))
- );
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"abcde"[..])),
- Err(ErrMode::Incomplete(Needed::new(1)))
- );
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"abcdefgh"[..])),
- Err(ErrMode::Incomplete(Needed::new(1)))
- );
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"xxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"xxxdefghi"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxxdefghi"[..]),
- ErrorKind::Tag
- ),))
- );
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"abcxxxghi"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxxghi"[..]),
- ErrorKind::Tag
- )))
- );
- assert_eq!(
- delimited_abc_def_ghi(Partial::new(&b"abcdefxxx"[..])),
- Err(ErrMode::Backtrack(error_position!(
- Partial::new(&b"xxx"[..]),
- ErrorKind::Tag
- )))
- );
-}