/rust/registry/src/index.crates.io-1949cf8c6b5b557f/nom-7.1.3/src/sequence/mod.rs
Line | Count | Source |
1 | | //! Combinators applying parsers in sequence |
2 | | |
3 | | #[cfg(test)] |
4 | | mod tests; |
5 | | |
6 | | use crate::error::ParseError; |
7 | | use crate::internal::{IResult, Parser}; |
8 | | |
9 | | /// Gets an object from the first parser, |
10 | | /// then gets another object from the second parser. |
11 | | /// |
12 | | /// # Arguments |
13 | | /// * `first` The first parser to apply. |
14 | | /// * `second` The second parser to apply. |
15 | | /// |
16 | | /// ```rust |
17 | | /// # use nom::{Err, error::ErrorKind, Needed}; |
18 | | /// # use nom::Needed::Size; |
19 | | /// use nom::sequence::pair; |
20 | | /// use nom::bytes::complete::tag; |
21 | | /// |
22 | | /// let mut parser = pair(tag("abc"), tag("efg")); |
23 | | /// |
24 | | /// assert_eq!(parser("abcefg"), Ok(("", ("abc", "efg")))); |
25 | | /// assert_eq!(parser("abcefghij"), Ok(("hij", ("abc", "efg")))); |
26 | | /// assert_eq!(parser(""), Err(Err::Error(("", ErrorKind::Tag)))); |
27 | | /// assert_eq!(parser("123"), Err(Err::Error(("123", ErrorKind::Tag)))); |
28 | | /// ``` |
29 | 851k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( |
30 | 851k | mut first: F, |
31 | 851k | mut second: G, |
32 | 851k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> |
33 | 851k | where |
34 | 851k | F: Parser<I, O1, E>, |
35 | 851k | G: Parser<I, O2, E>, |
36 | | { |
37 | 21.0M | move |input: I| { |
38 | 21.0M | let (input, o1) = first.parse(input)?; |
39 | 516k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) nom::sequence::pair::<&[u8], &[u8], core::option::Option<(alloc::vec::Vec<&[u8]>, (char, &[u8]))>, nom::error::Error<&[u8]>, nom::sequence::terminated<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}, nom::combinator::opt<&[u8], (alloc::vec::Vec<&[u8]>, (char, &[u8])), nom::error::Error<&[u8]>, nom::multi::many_till<&[u8], &[u8], (char, &[u8]), nom::error::Error<&[u8]>, nom::sequence::terminated<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::sequence::preceded<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}, nom::sequence::pair<&[u8], char, &[u8], nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 39 | 395k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _>::{closure#0}::{closure#0}nom::sequence::pair::<&[u8], char, &[u8], nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}::{closure#0}Line | Count | Source | 39 | 15.0k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
nom::sequence::pair::<&[u8], suricata::quic::frames::StreamTag, u32, suricata::quic::error::QuicError, suricata::quic::frames::parse_tag, nom::number::complete::le_u32<&[u8], suricata::quic::error::QuicError>>::{closure#0}::{closure#0}Line | Count | Source | 39 | 57.7k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
Unexecuted instantiation: nom::sequence::pair::<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}::{closure#0}Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _>::{closure#0}::{closure#0} |
40 | 21.0M | } nom::sequence::pair::<&[u8], &[u8], core::option::Option<(alloc::vec::Vec<&[u8]>, (char, &[u8]))>, nom::error::Error<&[u8]>, nom::sequence::terminated<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}, nom::combinator::opt<&[u8], (alloc::vec::Vec<&[u8]>, (char, &[u8])), nom::error::Error<&[u8]>, nom::multi::many_till<&[u8], &[u8], (char, &[u8]), nom::error::Error<&[u8]>, nom::sequence::terminated<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::sequence::preceded<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}, nom::sequence::pair<&[u8], char, &[u8], nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}Line | Count | Source | 37 | 395k | move |input: I| { | 38 | 395k | let (input, o1) = first.parse(input)?; | 39 | 395k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | 395k | } |
Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _>::{closure#0}nom::sequence::pair::<&[u8], char, &[u8], nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}Line | Count | Source | 37 | 20.5M | move |input: I| { | 38 | 20.5M | let (input, o1) = first.parse(input)?; | 39 | 62.9k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | 20.5M | } |
nom::sequence::pair::<&[u8], suricata::quic::frames::StreamTag, u32, suricata::quic::error::QuicError, suricata::quic::frames::parse_tag, nom::number::complete::le_u32<&[u8], suricata::quic::error::QuicError>>::{closure#0}Line | Count | Source | 37 | 61.4k | move |input: I| { | 38 | 61.4k | let (input, o1) = first.parse(input)?; | 39 | 58.3k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | 61.4k | } |
Unexecuted instantiation: nom::sequence::pair::<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _>::{closure#0} |
41 | 851k | } nom::sequence::pair::<&[u8], &[u8], core::option::Option<(alloc::vec::Vec<&[u8]>, (char, &[u8]))>, nom::error::Error<&[u8]>, nom::sequence::terminated<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}, nom::combinator::opt<&[u8], (alloc::vec::Vec<&[u8]>, (char, &[u8])), nom::error::Error<&[u8]>, nom::multi::many_till<&[u8], &[u8], (char, &[u8]), nom::error::Error<&[u8]>, nom::sequence::terminated<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::sequence::preceded<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}, nom::sequence::pair<&[u8], char, &[u8], nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}>::{closure#0}>::{closure#0}>Line | Count | Source | 29 | 395k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( | 30 | 395k | mut first: F, | 31 | 395k | mut second: G, | 32 | 395k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> | 33 | 395k | where | 34 | 395k | F: Parser<I, O1, E>, | 35 | 395k | G: Parser<I, O2, E>, | 36 | | { | 37 | | move |input: I| { | 38 | | let (input, o1) = first.parse(input)?; | 39 | | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | | } | 41 | 395k | } |
nom::sequence::pair::<&[u8], char, &[u8], nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>Line | Count | Source | 29 | 395k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( | 30 | 395k | mut first: F, | 31 | 395k | mut second: G, | 32 | 395k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> | 33 | 395k | where | 34 | 395k | F: Parser<I, O1, E>, | 35 | 395k | G: Parser<I, O2, E>, | 36 | | { | 37 | | move |input: I| { | 38 | | let (input, o1) = first.parse(input)?; | 39 | | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | | } | 41 | 395k | } |
Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _> Unexecuted instantiation: nom::sequence::pair::<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>nom::sequence::pair::<&[u8], suricata::quic::frames::StreamTag, u32, suricata::quic::error::QuicError, suricata::quic::frames::parse_tag, nom::number::complete::le_u32<&[u8], suricata::quic::error::QuicError>> Line | Count | Source | 29 | 61.4k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( | 30 | 61.4k | mut first: F, | 31 | 61.4k | mut second: G, | 32 | 61.4k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> | 33 | 61.4k | where | 34 | 61.4k | F: Parser<I, O1, E>, | 35 | 61.4k | G: Parser<I, O2, E>, | 36 | | { | 37 | | move |input: I| { | 38 | | let (input, o1) = first.parse(input)?; | 39 | | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | | } | 41 | 61.4k | } |
Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _> |
42 | | |
43 | | /// Matches an object from the first parser and discards it, |
44 | | /// then gets an object from the second parser. |
45 | | /// |
46 | | /// # Arguments |
47 | | /// * `first` The opening parser. |
48 | | /// * `second` The second parser to get object. |
49 | | /// |
50 | | /// ```rust |
51 | | /// # use nom::{Err, error::ErrorKind, Needed}; |
52 | | /// # use nom::Needed::Size; |
53 | | /// use nom::sequence::preceded; |
54 | | /// use nom::bytes::complete::tag; |
55 | | /// |
56 | | /// let mut parser = preceded(tag("abc"), tag("efg")); |
57 | | /// |
58 | | /// assert_eq!(parser("abcefg"), Ok(("", "efg"))); |
59 | | /// assert_eq!(parser("abcefghij"), Ok(("hij", "efg"))); |
60 | | /// assert_eq!(parser(""), Err(Err::Error(("", ErrorKind::Tag)))); |
61 | | /// assert_eq!(parser("123"), Err(Err::Error(("123", ErrorKind::Tag)))); |
62 | | /// ``` |
63 | 755k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( |
64 | 755k | mut first: F, |
65 | 755k | mut second: G, |
66 | 755k | ) -> impl FnMut(I) -> IResult<I, O2, E> |
67 | 755k | where |
68 | 755k | F: Parser<I, O1, E>, |
69 | 755k | G: Parser<I, O2, E>, |
70 | | { |
71 | 21.0M | move |input: I| { |
72 | 21.0M | let (input, _) = first.parse(input)?; |
73 | 21.0M | second.parse(input) |
74 | 21.0M | } Unexecuted instantiation: nom::sequence::preceded::<_, _, _, _, _, _>::{closure#0}nom::sequence::preceded::<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}Line | Count | Source | 71 | 20.5M | move |input: I| { | 72 | 20.5M | let (input, _) = first.parse(input)?; | 73 | 20.5M | second.parse(input) | 74 | 20.5M | } |
Unexecuted instantiation: nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, &str, str, nom::error::Error<&str>, nom::character::complete::not_line_ending<&str, nom::error::Error<&str>>, suricata::conf::get_memval::{closure#0}>::{closure#0}>::{closure#0}nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}>::{closure#0}Line | Count | Source | 71 | 25.1k | move |input: I| { | 72 | 25.1k | let (input, _) = first.parse(input)?; | 73 | 25.1k | second.parse(input) | 74 | 25.1k | } |
nom::sequence::preceded::<&str, &str, &str, suricata::detect::error::RuleParseError<&str>, nom::character::complete::multispace0<&str, suricata::detect::error::RuleParseError<&str>>, nom::bytes::complete::is_not<&str, &str, suricata::detect::error::RuleParseError<&str>>::{closure#0}>::{closure#0}Line | Count | Source | 71 | 136k | move |input: I| { | 72 | 136k | let (input, _) = first.parse(input)?; | 73 | 136k | second.parse(input) | 74 | 136k | } |
Unexecuted instantiation: nom::sequence::preceded::<&str, &str, f64, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::number::complete::double<&str, nom::error::Error<&str>>>::{closure#0}nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::bytes::complete::take_while<suricata::detect::requires::parse_key_value::{closure#0}, &str, nom::error::Error<&str>>::{closure#0}>::{closure#0}Line | Count | Source | 71 | 59.6k | move |input: I| { | 72 | 59.6k | let (input, _) = first.parse(input)?; | 73 | 59.6k | second.parse(input) | 74 | 59.6k | } |
nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::bytes::complete::take_till<suricata::detect::requires::parse_key_value::{closure#1}, &str, nom::error::Error<&str>>::{closure#0}>::{closure#0}Line | Count | Source | 71 | 59.6k | move |input: I| { | 72 | 59.6k | let (input, _) = first.parse(input)?; | 73 | 59.6k | second.parse(input) | 74 | 59.6k | } |
nom::sequence::preceded::<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::branch::alt<&str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, (nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#0}>::{closure#0}, nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#1}>::{closure#0}, nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#2}>::{closure#0}, nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#3}>::{closure#0})>::{closure#0}>::{closure#0}Line | Count | Source | 71 | 64.5k | move |input: I| { | 72 | 64.5k | let (input, _) = first.parse(input)?; | 73 | 64.5k | second.parse(input) | 74 | 64.5k | } |
nom::sequence::preceded::<&str, &str, u8, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, suricata::detect::requires::parse_next_version_part>::{closure#0}Line | Count | Source | 71 | 59.6k | move |input: I| { | 72 | 59.6k | let (input, _) = first.parse(input)?; | 73 | 59.6k | second.parse(input) | 74 | 59.6k | } |
nom::sequence::preceded::<&str, char, u8, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_next_version_part>::{closure#0}Line | Count | Source | 71 | 62.0k | move |input: I| { | 72 | 62.0k | let (input, _) = first.parse(input)?; | 73 | 61.1k | second.parse(input) | 74 | 62.0k | } |
Unexecuted instantiation: nom::sequence::preceded::<_, _, _, _, _, _>::{closure#0} |
75 | 755k | } nom::sequence::preceded::<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>Line | Count | Source | 63 | 395k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 395k | mut first: F, | 65 | 395k | mut second: G, | 66 | 395k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 395k | where | 68 | 395k | F: Parser<I, O1, E>, | 69 | 395k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 395k | } |
Unexecuted instantiation: nom::sequence::preceded::<_, _, _, _, _, _> Unexecuted instantiation: nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, &str, str, nom::error::Error<&str>, nom::character::complete::not_line_ending<&str, nom::error::Error<&str>>, suricata::conf::get_memval::{closure#0}>::{closure#0}>Unexecuted instantiation: nom::sequence::preceded::<&str, &str, f64, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::number::complete::double<&str, nom::error::Error<&str>>> nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::bytes::complete::take_while<suricata::detect::requires::parse_key_value::{closure#0}, &str, nom::error::Error<&str>>::{closure#0}>Line | Count | Source | 63 | 59.6k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 59.6k | mut first: F, | 65 | 59.6k | mut second: G, | 66 | 59.6k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 59.6k | where | 68 | 59.6k | F: Parser<I, O1, E>, | 69 | 59.6k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 59.6k | } |
nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}>Line | Count | Source | 63 | 10.9k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 10.9k | mut first: F, | 65 | 10.9k | mut second: G, | 66 | 10.9k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 10.9k | where | 68 | 10.9k | F: Parser<I, O1, E>, | 69 | 10.9k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 10.9k | } |
nom::sequence::preceded::<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::bytes::complete::take_till<suricata::detect::requires::parse_key_value::{closure#1}, &str, nom::error::Error<&str>>::{closure#0}>Line | Count | Source | 63 | 59.6k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 59.6k | mut first: F, | 65 | 59.6k | mut second: G, | 66 | 59.6k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 59.6k | where | 68 | 59.6k | F: Parser<I, O1, E>, | 69 | 59.6k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 59.6k | } |
nom::sequence::preceded::<&str, &str, &str, suricata::detect::error::RuleParseError<&str>, nom::character::complete::multispace0<&str, suricata::detect::error::RuleParseError<&str>>, nom::bytes::complete::is_not<&str, &str, suricata::detect::error::RuleParseError<&str>>::{closure#0}>Line | Count | Source | 63 | 43.8k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 43.8k | mut first: F, | 65 | 43.8k | mut second: G, | 66 | 43.8k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 43.8k | where | 68 | 43.8k | F: Parser<I, O1, E>, | 69 | 43.8k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 43.8k | } |
nom::sequence::preceded::<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::branch::alt<&str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, (nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#0}>::{closure#0}, nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#1}>::{closure#0}, nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#2}>::{closure#0}, nom::combinator::map<&str, &str, suricata::detect::requires::VersionCompareOp, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_op::{closure#3}>::{closure#0})>::{closure#0}>Line | Count | Source | 63 | 64.5k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 64.5k | mut first: F, | 65 | 64.5k | mut second: G, | 66 | 64.5k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 64.5k | where | 68 | 64.5k | F: Parser<I, O1, E>, | 69 | 64.5k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 64.5k | } |
nom::sequence::preceded::<&str, &str, u8, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, suricata::detect::requires::parse_next_version_part> Line | Count | Source | 63 | 59.6k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 59.6k | mut first: F, | 65 | 59.6k | mut second: G, | 66 | 59.6k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 59.6k | where | 68 | 59.6k | F: Parser<I, O1, E>, | 69 | 59.6k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 59.6k | } |
nom::sequence::preceded::<&str, char, u8, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, suricata::detect::requires::parse_next_version_part>Line | Count | Source | 63 | 62.0k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 62.0k | mut first: F, | 65 | 62.0k | mut second: G, | 66 | 62.0k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 62.0k | where | 68 | 62.0k | F: Parser<I, O1, E>, | 69 | 62.0k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 62.0k | } |
Unexecuted instantiation: nom::sequence::preceded::<_, _, _, _, _, _> |
76 | | |
77 | | /// Gets an object from the first parser, |
78 | | /// then matches an object from the second parser and discards it. |
79 | | /// |
80 | | /// # Arguments |
81 | | /// * `first` The first parser to apply. |
82 | | /// * `second` The second parser to match an object. |
83 | | /// |
84 | | /// ```rust |
85 | | /// # use nom::{Err, error::ErrorKind, Needed}; |
86 | | /// # use nom::Needed::Size; |
87 | | /// use nom::sequence::terminated; |
88 | | /// use nom::bytes::complete::tag; |
89 | | /// |
90 | | /// let mut parser = terminated(tag("abc"), tag("efg")); |
91 | | /// |
92 | | /// assert_eq!(parser("abcefg"), Ok(("", "abc"))); |
93 | | /// assert_eq!(parser("abcefghij"), Ok(("hij", "abc"))); |
94 | | /// assert_eq!(parser(""), Err(Err::Error(("", ErrorKind::Tag)))); |
95 | | /// assert_eq!(parser("123"), Err(Err::Error(("123", ErrorKind::Tag)))); |
96 | | /// ``` |
97 | 1.82M | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( |
98 | 1.82M | mut first: F, |
99 | 1.82M | mut second: G, |
100 | 1.82M | ) -> impl FnMut(I) -> IResult<I, O1, E> |
101 | 1.82M | where |
102 | 1.82M | F: Parser<I, O1, E>, |
103 | 1.82M | G: Parser<I, O2, E>, |
104 | | { |
105 | 21.9M | move |input: I| { |
106 | 21.9M | let (input, o1) = first.parse(input)?; |
107 | 21.4M | second.parse(input).map(|(i, _)| (i, o1)) nom::sequence::terminated::<&[u8], &[u8], core::option::Option<char>, nom::error::Error<&[u8]>, nom::bytes::complete::is_not<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 107 | 607k | second.parse(input).map(|(i, _)| (i, o1)) |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _>::{closure#0}::{closure#0}nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::sequence::preceded<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}::{closure#0}Line | Count | Source | 107 | 20.1M | second.parse(input).map(|(i, _)| (i, o1)) |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}::{closure#0}Line | Count | Source | 107 | 605k | second.parse(input).map(|(i, _)| (i, o1)) |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take_while<suricata::ssh::parser::is_not_lineend, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::branch::alt<&[u8], &[u8], nom::error::Error<&[u8]>, (nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, suricata::ssh::parser::ssh_parse_line::parser)>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 107 | 13.0k | second.parse(input).map(|(i, _)| (i, o1)) |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take<u32, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::combinator::eof<&[u8], nom::error::Error<&[u8]>>>::{closure#0}::{closure#0}Line | Count | Source | 107 | 359 | second.parse(input).map(|(i, _)| (i, o1)) |
nom::sequence::terminated::<&[u8], &[u8], &[u8], (), nom::bytes::streaming::tag<&str, &[u8], ()>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], ()>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 107 | 4.71k | second.parse(input).map(|(i, _)| (i, o1)) |
nom::sequence::terminated::<&[u8], alloc::vec::Vec<suricata::pgsql::parser::SASLAuthenticationMechanism>, &[u8], nom::error::Error<&[u8]>, nom::multi::many1<&[u8], suricata::pgsql::parser::SASLAuthenticationMechanism, nom::error::Error<&[u8]>, suricata::pgsql::parser::parse_sasl_mechanism>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 107 | 1.34k | second.parse(input).map(|(i, _)| (i, o1)) |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_while1<nom::character::is_digit, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 107 | 3.87k | second.parse(input).map(|(i, _)| (i, o1)) |
nom::sequence::terminated::<&[u8], alloc::vec::Vec<suricata::pgsql::parser::PgsqlParameter>, &[u8], nom::error::Error<&[u8]>, nom::multi::many1<&[u8], suricata::pgsql::parser::PgsqlParameter, nom::error::Error<&[u8]>, suricata::pgsql::parser::pgsql_parse_generic_parameter>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 107 | 62.1k | second.parse(input).map(|(i, _)| (i, o1)) |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _>::{closure#0}::{closure#0} |
108 | 21.9M | } nom::sequence::terminated::<&[u8], &[u8], core::option::Option<char>, nom::error::Error<&[u8]>, nom::bytes::complete::is_not<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}>::{closure#0}Line | Count | Source | 105 | 607k | move |input: I| { | 106 | 607k | let (input, o1) = first.parse(input)?; | 107 | 607k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 607k | } |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _>::{closure#0}nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::sequence::preceded<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}Line | Count | Source | 105 | 20.5M | move |input: I| { | 106 | 20.5M | let (input, o1) = first.parse(input)?; | 107 | 20.1M | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 20.5M | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>::{closure#0}Line | Count | Source | 105 | 605k | move |input: I| { | 106 | 605k | let (input, o1) = first.parse(input)?; | 107 | 605k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 605k | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take_while<suricata::ssh::parser::is_not_lineend, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::branch::alt<&[u8], &[u8], nom::error::Error<&[u8]>, (nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, suricata::ssh::parser::ssh_parse_line::parser)>::{closure#0}>::{closure#0}Line | Count | Source | 105 | 91.0k | move |input: I| { | 106 | 91.0k | let (input, o1) = first.parse(input)?; | 107 | 15.8k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 91.0k | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take<u32, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::combinator::eof<&[u8], nom::error::Error<&[u8]>>>::{closure#0}Line | Count | Source | 105 | 780 | move |input: I| { | 106 | 780 | let (input, o1) = first.parse(input)?; | 107 | 370 | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 780 | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], (), nom::bytes::streaming::tag<&str, &[u8], ()>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], ()>::{closure#0}>::{closure#0}Line | Count | Source | 105 | 13.2k | move |input: I| { | 106 | 13.2k | let (input, o1) = first.parse(input)?; | 107 | 4.72k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 13.2k | } |
nom::sequence::terminated::<&[u8], alloc::vec::Vec<suricata::pgsql::parser::SASLAuthenticationMechanism>, &[u8], nom::error::Error<&[u8]>, nom::multi::many1<&[u8], suricata::pgsql::parser::SASLAuthenticationMechanism, nom::error::Error<&[u8]>, suricata::pgsql::parser::parse_sasl_mechanism>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}Line | Count | Source | 105 | 1.89k | move |input: I| { | 106 | 1.89k | let (input, o1) = first.parse(input)?; | 107 | 1.82k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 1.89k | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_while1<nom::character::is_digit, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}Line | Count | Source | 105 | 5.08k | move |input: I| { | 106 | 5.08k | let (input, o1) = first.parse(input)?; | 107 | 4.02k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 5.08k | } |
nom::sequence::terminated::<&[u8], alloc::vec::Vec<suricata::pgsql::parser::PgsqlParameter>, &[u8], nom::error::Error<&[u8]>, nom::multi::many1<&[u8], suricata::pgsql::parser::PgsqlParameter, nom::error::Error<&[u8]>, suricata::pgsql::parser::pgsql_parse_generic_parameter>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}Line | Count | Source | 105 | 101k | move |input: I| { | 106 | 101k | let (input, o1) = first.parse(input)?; | 107 | 62.1k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 101k | } |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _>::{closure#0} |
109 | 1.82M | } nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::sequence::preceded<&[u8], core::option::Option<char>, &[u8], nom::error::Error<&[u8]>, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>Line | Count | Source | 97 | 395k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 395k | mut first: F, | 99 | 395k | mut second: G, | 100 | 395k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 395k | where | 102 | 395k | F: Parser<I, O1, E>, | 103 | 395k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 395k | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_until<&[u8], &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::crlf<&[u8], nom::error::Error<&[u8]>>>Line | Count | Source | 97 | 605k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 605k | mut first: F, | 99 | 605k | mut second: G, | 100 | 605k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 605k | where | 102 | 605k | F: Parser<I, O1, E>, | 103 | 605k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 605k | } |
nom::sequence::terminated::<&[u8], &[u8], core::option::Option<char>, nom::error::Error<&[u8]>, nom::bytes::complete::is_not<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::combinator::opt<&[u8], char, nom::error::Error<&[u8]>, nom::character::complete::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}>Line | Count | Source | 97 | 607k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 607k | mut first: F, | 99 | 607k | mut second: G, | 100 | 607k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 607k | where | 102 | 607k | F: Parser<I, O1, E>, | 103 | 607k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 607k | } |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _> nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take_while<suricata::ssh::parser::is_not_lineend, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::branch::alt<&[u8], &[u8], nom::error::Error<&[u8]>, (nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, suricata::ssh::parser::ssh_parse_line::parser)>::{closure#0}>Line | Count | Source | 97 | 91.0k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 91.0k | mut first: F, | 99 | 91.0k | mut second: G, | 100 | 91.0k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 91.0k | where | 102 | 91.0k | F: Parser<I, O1, E>, | 103 | 91.0k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 91.0k | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take<u32, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::combinator::eof<&[u8], nom::error::Error<&[u8]>>>Line | Count | Source | 97 | 780 | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 780 | mut first: F, | 99 | 780 | mut second: G, | 100 | 780 | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 780 | where | 102 | 780 | F: Parser<I, O1, E>, | 103 | 780 | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 780 | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], (), nom::bytes::streaming::tag<&str, &[u8], ()>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], ()>::{closure#0}>Line | Count | Source | 97 | 13.2k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 13.2k | mut first: F, | 99 | 13.2k | mut second: G, | 100 | 13.2k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 13.2k | where | 102 | 13.2k | F: Parser<I, O1, E>, | 103 | 13.2k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 13.2k | } |
nom::sequence::terminated::<&[u8], alloc::vec::Vec<suricata::pgsql::parser::PgsqlParameter>, &[u8], nom::error::Error<&[u8]>, nom::multi::many1<&[u8], suricata::pgsql::parser::PgsqlParameter, nom::error::Error<&[u8]>, suricata::pgsql::parser::pgsql_parse_generic_parameter>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>Line | Count | Source | 97 | 101k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 101k | mut first: F, | 99 | 101k | mut second: G, | 100 | 101k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 101k | where | 102 | 101k | F: Parser<I, O1, E>, | 103 | 101k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 101k | } |
nom::sequence::terminated::<&[u8], alloc::vec::Vec<suricata::pgsql::parser::SASLAuthenticationMechanism>, &[u8], nom::error::Error<&[u8]>, nom::multi::many1<&[u8], suricata::pgsql::parser::SASLAuthenticationMechanism, nom::error::Error<&[u8]>, suricata::pgsql::parser::parse_sasl_mechanism>::{closure#0}, nom::bytes::streaming::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>Line | Count | Source | 97 | 1.89k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 1.89k | mut first: F, | 99 | 1.89k | mut second: G, | 100 | 1.89k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 1.89k | where | 102 | 1.89k | F: Parser<I, O1, E>, | 103 | 1.89k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 1.89k | } |
nom::sequence::terminated::<&[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::bytes::complete::take_while1<nom::character::is_digit, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}>Line | Count | Source | 97 | 5.08k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 5.08k | mut first: F, | 99 | 5.08k | mut second: G, | 100 | 5.08k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 5.08k | where | 102 | 5.08k | F: Parser<I, O1, E>, | 103 | 5.08k | G: Parser<I, O2, E>, | 104 | | { | 105 | | move |input: I| { | 106 | | let (input, o1) = first.parse(input)?; | 107 | | second.parse(input).map(|(i, _)| (i, o1)) | 108 | | } | 109 | 5.08k | } |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _> |
110 | | |
111 | | /// Gets an object from the first parser, |
112 | | /// then matches an object from the sep_parser and discards it, |
113 | | /// then gets another object from the second parser. |
114 | | /// |
115 | | /// # Arguments |
116 | | /// * `first` The first parser to apply. |
117 | | /// * `sep` The separator parser to apply. |
118 | | /// * `second` The second parser to apply. |
119 | | /// |
120 | | /// ```rust |
121 | | /// # use nom::{Err, error::ErrorKind, Needed}; |
122 | | /// # use nom::Needed::Size; |
123 | | /// use nom::sequence::separated_pair; |
124 | | /// use nom::bytes::complete::tag; |
125 | | /// |
126 | | /// let mut parser = separated_pair(tag("abc"), tag("|"), tag("efg")); |
127 | | /// |
128 | | /// assert_eq!(parser("abc|efg"), Ok(("", ("abc", "efg")))); |
129 | | /// assert_eq!(parser("abc|efghij"), Ok(("hij", ("abc", "efg")))); |
130 | | /// assert_eq!(parser(""), Err(Err::Error(("", ErrorKind::Tag)))); |
131 | | /// assert_eq!(parser("123"), Err(Err::Error(("123", ErrorKind::Tag)))); |
132 | | /// ``` |
133 | 16.9k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( |
134 | 16.9k | mut first: F, |
135 | 16.9k | mut sep: G, |
136 | 16.9k | mut second: H, |
137 | 16.9k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> |
138 | 16.9k | where |
139 | 16.9k | F: Parser<I, O1, E>, |
140 | 16.9k | G: Parser<I, O2, E>, |
141 | 16.9k | H: Parser<I, O3, E>, |
142 | | { |
143 | 16.9k | move |input: I| { |
144 | 16.9k | let (input, o1) = first.parse(input)?; |
145 | 3.03k | let (input, _) = sep.parse(input)?; |
146 | 2.79k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _>::{closure#0}::{closure#0}nom::sequence::separated_pair::<&str, &str, &str, i32, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, i32, i32, nom::error::Error<&str>, suricata::asn1::parse_rules::parse_i32_number, suricata::asn1::parse_rules::asn1_parse_rule::relative_offset::{closure#0}>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 146 | 596 | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
nom::sequence::separated_pair::<&str, &str, &str, u32, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, suricata::asn1::parse_rules::parse_u32_number>::{closure#0}::{closure#0}Line | Count | Source | 146 | 796 | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
nom::sequence::separated_pair::<&str, &str, &str, u16, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, suricata::asn1::parse_rules::parse_u16_number>::{closure#0}::{closure#0}Line | Count | Source | 146 | 1.34k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _>::{closure#0}::{closure#0} |
147 | 16.9k | } Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _>::{closure#0}nom::sequence::separated_pair::<&str, &str, &str, i32, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, i32, i32, nom::error::Error<&str>, suricata::asn1::parse_rules::parse_i32_number, suricata::asn1::parse_rules::asn1_parse_rule::relative_offset::{closure#0}>::{closure#0}>::{closure#0}Line | Count | Source | 143 | 5.65k | move |input: I| { | 144 | 5.65k | let (input, o1) = first.parse(input)?; | 145 | 635 | let (input, _) = sep.parse(input)?; | 146 | 631 | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | 5.65k | } |
nom::sequence::separated_pair::<&str, &str, &str, u32, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, suricata::asn1::parse_rules::parse_u32_number>::{closure#0}Line | Count | Source | 143 | 5.65k | move |input: I| { | 144 | 5.65k | let (input, o1) = first.parse(input)?; | 145 | 1.04k | let (input, _) = sep.parse(input)?; | 146 | 812 | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | 5.65k | } |
nom::sequence::separated_pair::<&str, &str, &str, u16, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, suricata::asn1::parse_rules::parse_u16_number>::{closure#0}Line | Count | Source | 143 | 5.65k | move |input: I| { | 144 | 5.65k | let (input, o1) = first.parse(input)?; | 145 | 1.35k | let (input, _) = sep.parse(input)?; | 146 | 1.35k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | 5.65k | } |
Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _>::{closure#0} |
148 | 16.9k | } Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _> nom::sequence::separated_pair::<&str, &str, &str, i32, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, i32, i32, nom::error::Error<&str>, suricata::asn1::parse_rules::parse_i32_number, suricata::asn1::parse_rules::asn1_parse_rule::relative_offset::{closure#0}>::{closure#0}>Line | Count | Source | 133 | 5.65k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 134 | 5.65k | mut first: F, | 135 | 5.65k | mut sep: G, | 136 | 5.65k | mut second: H, | 137 | 5.65k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> | 138 | 5.65k | where | 139 | 5.65k | F: Parser<I, O1, E>, | 140 | 5.65k | G: Parser<I, O2, E>, | 141 | 5.65k | H: Parser<I, O3, E>, | 142 | | { | 143 | | move |input: I| { | 144 | | let (input, o1) = first.parse(input)?; | 145 | | let (input, _) = sep.parse(input)?; | 146 | | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | | } | 148 | 5.65k | } |
nom::sequence::separated_pair::<&str, &str, &str, u32, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, suricata::asn1::parse_rules::parse_u32_number>Line | Count | Source | 133 | 5.65k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 134 | 5.65k | mut first: F, | 135 | 5.65k | mut sep: G, | 136 | 5.65k | mut second: H, | 137 | 5.65k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> | 138 | 5.65k | where | 139 | 5.65k | F: Parser<I, O1, E>, | 140 | 5.65k | G: Parser<I, O2, E>, | 141 | 5.65k | H: Parser<I, O3, E>, | 142 | | { | 143 | | move |input: I| { | 144 | | let (input, o1) = first.parse(input)?; | 145 | | let (input, _) = sep.parse(input)?; | 146 | | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | | } | 148 | 5.65k | } |
nom::sequence::separated_pair::<&str, &str, &str, u16, nom::error::Error<&str>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::multispace1<&str, nom::error::Error<&str>>, suricata::asn1::parse_rules::parse_u16_number>Line | Count | Source | 133 | 5.65k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 134 | 5.65k | mut first: F, | 135 | 5.65k | mut sep: G, | 136 | 5.65k | mut second: H, | 137 | 5.65k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> | 138 | 5.65k | where | 139 | 5.65k | F: Parser<I, O1, E>, | 140 | 5.65k | G: Parser<I, O2, E>, | 141 | 5.65k | H: Parser<I, O3, E>, | 142 | | { | 143 | | move |input: I| { | 144 | | let (input, o1) = first.parse(input)?; | 145 | | let (input, _) = sep.parse(input)?; | 146 | | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | | } | 148 | 5.65k | } |
Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _> |
149 | | |
150 | | /// Matches an object from the first parser and discards it, |
151 | | /// then gets an object from the second parser, |
152 | | /// and finally matches an object from the third parser and discards it. |
153 | | /// |
154 | | /// # Arguments |
155 | | /// * `first` The first parser to apply and discard. |
156 | | /// * `second` The second parser to apply. |
157 | | /// * `third` The third parser to apply and discard. |
158 | | /// |
159 | | /// ```rust |
160 | | /// # use nom::{Err, error::ErrorKind, Needed}; |
161 | | /// # use nom::Needed::Size; |
162 | | /// use nom::sequence::delimited; |
163 | | /// use nom::bytes::complete::tag; |
164 | | /// |
165 | | /// let mut parser = delimited(tag("("), tag("abc"), tag(")")); |
166 | | /// |
167 | | /// assert_eq!(parser("(abc)"), Ok(("", "abc"))); |
168 | | /// assert_eq!(parser("(abc)def"), Ok(("def", "abc"))); |
169 | | /// assert_eq!(parser(""), Err(Err::Error(("", ErrorKind::Tag)))); |
170 | | /// assert_eq!(parser("123"), Err(Err::Error(("123", ErrorKind::Tag)))); |
171 | | /// ``` |
172 | 1.11M | pub fn delimited<I, O1, O2, O3, E: ParseError<I>, F, G, H>( |
173 | 1.11M | mut first: F, |
174 | 1.11M | mut second: G, |
175 | 1.11M | mut third: H, |
176 | 1.11M | ) -> impl FnMut(I) -> IResult<I, O2, E> |
177 | 1.11M | where |
178 | 1.11M | F: Parser<I, O1, E>, |
179 | 1.11M | G: Parser<I, O2, E>, |
180 | 1.11M | H: Parser<I, O3, E>, |
181 | | { |
182 | 1.11M | move |input: I| { |
183 | 1.11M | let (input, _) = first.parse(input)?; |
184 | 1.11M | let (input, o2) = second.parse(input)?; |
185 | 1.10M | third.parse(input).map(|(i, _)| (i, o2)) Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _>::{closure#0}::{closure#0}nom::sequence::delimited::<&[u8], &[u8], char, &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take_while<nom::character::is_space, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::streaming::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::streaming::take_while<nom::character::is_space, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}::{closure#0}Line | Count | Source | 185 | 920k | third.parse(input).map(|(i, _)| (i, o2)) |
nom::sequence::delimited::<&[u8], &[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::character::complete::multispace0<&[u8], nom::error::Error<&[u8]>>, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::character::complete::multispace0<&[u8], nom::error::Error<&[u8]>>>::{closure#0}::{closure#0}Line | Count | Source | 185 | 179k | third.parse(input).map(|(i, _)| (i, o2)) |
Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _>::{closure#0}::{closure#0} |
186 | 1.11M | } Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _>::{closure#0}nom::sequence::delimited::<&[u8], &[u8], char, &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take_while<nom::character::is_space, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::streaming::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::streaming::take_while<nom::character::is_space, &[u8], nom::error::Error<&[u8]>>::{closure#0}>::{closure#0}Line | Count | Source | 182 | 920k | move |input: I| { | 183 | 920k | let (input, _) = first.parse(input)?; | 184 | 920k | let (input, o2) = second.parse(input)?; | 185 | 920k | third.parse(input).map(|(i, _)| (i, o2)) | 186 | 920k | } |
nom::sequence::delimited::<&[u8], &[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::character::complete::multispace0<&[u8], nom::error::Error<&[u8]>>, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::character::complete::multispace0<&[u8], nom::error::Error<&[u8]>>>::{closure#0}Line | Count | Source | 182 | 190k | move |input: I| { | 183 | 190k | let (input, _) = first.parse(input)?; | 184 | 190k | let (input, o2) = second.parse(input)?; | 185 | 179k | third.parse(input).map(|(i, _)| (i, o2)) | 186 | 190k | } |
Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _>::{closure#0} |
187 | 1.11M | } Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _> nom::sequence::delimited::<&[u8], &[u8], char, &[u8], nom::error::Error<&[u8]>, nom::bytes::streaming::take_while<nom::character::is_space, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::streaming::char<&[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::bytes::streaming::take_while<nom::character::is_space, &[u8], nom::error::Error<&[u8]>>::{closure#0}>Line | Count | Source | 172 | 920k | pub fn delimited<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 173 | 920k | mut first: F, | 174 | 920k | mut second: G, | 175 | 920k | mut third: H, | 176 | 920k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 177 | 920k | where | 178 | 920k | F: Parser<I, O1, E>, | 179 | 920k | G: Parser<I, O2, E>, | 180 | 920k | H: Parser<I, O3, E>, | 181 | | { | 182 | | move |input: I| { | 183 | | let (input, _) = first.parse(input)?; | 184 | | let (input, o2) = second.parse(input)?; | 185 | | third.parse(input).map(|(i, _)| (i, o2)) | 186 | | } | 187 | 920k | } |
nom::sequence::delimited::<&[u8], &[u8], &[u8], &[u8], nom::error::Error<&[u8]>, nom::character::complete::multispace0<&[u8], nom::error::Error<&[u8]>>, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::character::complete::multispace0<&[u8], nom::error::Error<&[u8]>>> Line | Count | Source | 172 | 190k | pub fn delimited<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 173 | 190k | mut first: F, | 174 | 190k | mut second: G, | 175 | 190k | mut third: H, | 176 | 190k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 177 | 190k | where | 178 | 190k | F: Parser<I, O1, E>, | 179 | 190k | G: Parser<I, O2, E>, | 180 | 190k | H: Parser<I, O3, E>, | 181 | | { | 182 | | move |input: I| { | 183 | | let (input, _) = first.parse(input)?; | 184 | | let (input, o2) = second.parse(input)?; | 185 | | third.parse(input).map(|(i, _)| (i, o2)) | 186 | | } | 187 | 190k | } |
Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _> |
188 | | |
189 | | /// Helper trait for the tuple combinator. |
190 | | /// |
191 | | /// This trait is implemented for tuples of parsers of up to 21 elements. |
192 | | pub trait Tuple<I, O, E> { |
193 | | /// Parses the input and returns a tuple of results of each parser. |
194 | | fn parse(&mut self, input: I) -> IResult<I, O, E>; |
195 | | } |
196 | | |
197 | | impl<Input, Output, Error: ParseError<Input>, F: Parser<Input, Output, Error>> |
198 | | Tuple<Input, (Output,), Error> for (F,) |
199 | | { |
200 | 0 | fn parse(&mut self, input: Input) -> IResult<Input, (Output,), Error> { |
201 | 0 | self.0.parse(input).map(|(i, o)| (i, (o,))) Unexecuted instantiation: <(_,) as nom::sequence::Tuple<_, (_,), _>>::parse::{closure#0}Unexecuted instantiation: <(_,) as nom::sequence::Tuple<_, (_,), _>>::parse::{closure#0} |
202 | 0 | } Unexecuted instantiation: <(_,) as nom::sequence::Tuple<_, (_,), _>>::parse Unexecuted instantiation: <(_,) as nom::sequence::Tuple<_, (_,), _>>::parse |
203 | | } |
204 | | |
205 | | macro_rules! tuple_trait( |
206 | | ($name1:ident $ty1:ident, $name2: ident $ty2:ident, $($name:ident $ty:ident),*) => ( |
207 | | tuple_trait!(__impl $name1 $ty1, $name2 $ty2; $($name $ty),*); |
208 | | ); |
209 | | (__impl $($name:ident $ty: ident),+; $name1:ident $ty1:ident, $($name2:ident $ty2:ident),*) => ( |
210 | | tuple_trait_impl!($($name $ty),+); |
211 | | tuple_trait!(__impl $($name $ty),+ , $name1 $ty1; $($name2 $ty2),*); |
212 | | ); |
213 | | (__impl $($name:ident $ty: ident),+; $name1:ident $ty1:ident) => ( |
214 | | tuple_trait_impl!($($name $ty),+); |
215 | | tuple_trait_impl!($($name $ty),+, $name1 $ty1); |
216 | | ); |
217 | | ); |
218 | | |
219 | | macro_rules! tuple_trait_impl( |
220 | | ($($name:ident $ty: ident),+) => ( |
221 | | impl< |
222 | | Input: Clone, $($ty),+ , Error: ParseError<Input>, |
223 | | $($name: Parser<Input, $ty, Error>),+ |
224 | | > Tuple<Input, ( $($ty),+ ), Error> for ( $($name),+ ) { |
225 | | |
226 | 144M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { |
227 | 144M | tuple_trait_inner!(0, self, input, (), $($name)+) |
228 | | |
229 | 144M | } <(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_indexed::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 23.0M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 23.0M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 23.0M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_dynamic_size::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 4.52M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 4.52M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 4.52M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_noindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 6.63M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 6.63M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 6.63M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_incindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 6.25M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 6.25M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 6.25M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_neverindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 207k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 207k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 207k | } |
<(nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 14.2M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 14.2M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 14.2M | } |
<(nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u32), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 1.86M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 1.86M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 1.86M | } |
Unexecuted instantiation: <(_, _) as nom::sequence::Tuple<_, (_, _), _>>::parse Unexecuted instantiation: <(_, _, _) as nom::sequence::Tuple<_, (_, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse <(nom::number::streaming::be_u8<&[u8], nom::error::Error<&[u8]>>, nom::number::streaming::be_u32<&[u8], nom::error::Error<&[u8]>>) as nom::sequence::Tuple<&[u8], (u8, u32), nom::error::Error<&[u8]>>>::parse Line | Count | Source | 226 | 1.64M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 1.64M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 1.64M | } |
<(nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 7.37M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 7.37M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 7.37M | } |
<(nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u32), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 6.33M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 6.33M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 6.33M | } |
<(nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 179k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 179k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 179k | } |
<(nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u32, u32, u32), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 178k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 178k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 178k | } |
<(nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8, u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 39.8M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 39.8M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 39.8M | } |
<(nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8, u8, u8, u8, u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 34.2k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 34.2k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 34.2k | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_class_options::{closure#0}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_class_options::{closure#1}>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 2.25M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 2.25M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 2.25M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_indexed::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 21.8M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 21.8M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 21.8M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_dynamic_size::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 2.11M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 2.11M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 2.11M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_noindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 2.26M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 2.26M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 2.26M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_incindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 3.39M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 3.39M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 3.39M | } |
<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_neverindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 172k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 172k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 172k | } |
Unexecuted instantiation: <(nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::branch::alt<&str, (), nom::error::Error<&str>, (nom::combinator::map<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), (), nom::error::Error<&str>, nom::sequence::tuple<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), nom::error::Error<&str>, (nom::character::complete::digit1<&str, nom::error::Error<&str>>, nom::combinator::opt<&str, (char, core::option::Option<&str>), nom::error::Error<&str>, nom::sequence::pair<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}>::{closure#0})>::{closure#0}, nom::number::complete::recognize_float<&str, nom::error::Error<&str>>::{closure#0}>::{closure#0}, nom::combinator::map<&str, (char, &str), (), nom::error::Error<&str>, nom::sequence::tuple<&str, (char, &str), nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::digit1<&str, nom::error::Error<&str>>)>::{closure#0}, nom::number::complete::recognize_float<&str, nom::error::Error<&str>>::{closure#1}>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, nom::sequence::tuple<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, (nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::combinator::cut<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0})>::{closure#0}>::{closure#0}) as nom::sequence::Tuple<&str, (core::option::Option<char>, (), core::option::Option<(char, core::option::Option<char>, &str)>), nom::error::Error<&str>>>::parse<(nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#0}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#1}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#2}>::{closure#0}) as nom::sequence::Tuple<(&[u8], usize), (u8, u8, u8), nom::error::Error<(&[u8], usize)>>>::parseLine | Count | Source | 226 | 36.6k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 36.6k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 36.6k | } |
<(nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::bitstring_overflow>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::double_overflow>::{closure#0}, nom::combinator::opt<&str, (&str, u32), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::oversize_length>::{closure#0}, nom::combinator::opt<&str, (&str, u16), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::absolute_offset>::{closure#0}, nom::combinator::opt<&str, (&str, i32), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::relative_offset>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::branch::alt<&str, &str, nom::error::Error<&str>, (nom::character::complete::multispace1<&str, nom::error::Error<&str>>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}) as nom::sequence::Tuple<&str, (core::option::Option<&str>, core::option::Option<&str>, core::option::Option<&str>, core::option::Option<(&str, u32)>, core::option::Option<(&str, u16)>, core::option::Option<(&str, i32)>, core::option::Option<&str>), nom::error::Error<&str>>>::parseLine | Count | Source | 226 | 5.65k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 5.65k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 5.65k | } |
Unexecuted instantiation: <(nom::character::complete::digit1<&str, nom::error::Error<&str>>, nom::combinator::opt<&str, (char, core::option::Option<&str>), nom::error::Error<&str>, nom::sequence::pair<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}>::{closure#0}) as nom::sequence::Tuple<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), nom::error::Error<&str>>>::parseUnexecuted instantiation: <(nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::digit1<&str, nom::error::Error<&str>>) as nom::sequence::Tuple<&str, (char, &str), nom::error::Error<&str>>>::parseUnexecuted instantiation: <(nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::combinator::cut<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}) as nom::sequence::Tuple<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>>>::parse<(nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}) as nom::sequence::Tuple<&[u8], (&[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8]), nom::error::Error<&[u8]>>>::parseLine | Count | Source | 226 | 155k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 155k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 155k | } |
<(nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}) as nom::sequence::Tuple<&[u8], (&[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8]), nom::error::Error<&[u8]>>>::parseLine | Count | Source | 226 | 32.1k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 32.1k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 32.1k | } |
Unexecuted instantiation: <(nom::sequence::preceded<&str, &str, f64, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::number::complete::double<&str, nom::error::Error<&str>>>::{closure#0}, nom::sequence::preceded<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, &str, str, nom::error::Error<&str>, nom::character::complete::not_line_ending<&str, nom::error::Error<&str>>, suricata::conf::get_memval::{closure#0}>::{closure#0}>::{closure#0}) as nom::sequence::Tuple<&str, (f64, &str), nom::error::Error<&str>>>::parse<(suricata::detect::requires::parse_op, suricata::detect::requires::parse_version) as nom::sequence::Tuple<&str, (suricata::detect::requires::VersionCompareOp, suricata::detect::requires::SuricataVersion), nom::error::Error<&str>>>::parse Line | Count | Source | 226 | 64.5k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 64.5k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 64.5k | } |
Unexecuted instantiation: <(_, _) as nom::sequence::Tuple<_, (_, _), _>>::parse Unexecuted instantiation: <(_, _, _) as nom::sequence::Tuple<_, (_, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse Unexecuted instantiation: <(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _) as nom::sequence::Tuple<_, (_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _), _>>::parse |
230 | | } |
231 | | ); |
232 | | ); |
233 | | |
234 | | macro_rules! tuple_trait_inner( |
235 | | ($it:tt, $self:expr, $input:expr, (), $head:ident $($id:ident)+) => ({ |
236 | | let (i, o) = $self.$it.parse($input.clone())?; |
237 | | |
238 | | succ!($it, tuple_trait_inner!($self, i, ( o ), $($id)+)) |
239 | | }); |
240 | | ($it:tt, $self:expr, $input:expr, ($($parsed:tt)*), $head:ident $($id:ident)+) => ({ |
241 | | let (i, o) = $self.$it.parse($input.clone())?; |
242 | | |
243 | | succ!($it, tuple_trait_inner!($self, i, ($($parsed)* , o), $($id)+)) |
244 | | }); |
245 | | ($it:tt, $self:expr, $input:expr, ($($parsed:tt)*), $head:ident) => ({ |
246 | | let (i, o) = $self.$it.parse($input.clone())?; |
247 | | |
248 | | Ok((i, ($($parsed)* , o))) |
249 | | }); |
250 | | ); |
251 | | |
252 | | tuple_trait!(FnA A, FnB B, FnC C, FnD D, FnE E, FnF F, FnG G, FnH H, FnI I, FnJ J, FnK K, FnL L, |
253 | | FnM M, FnN N, FnO O, FnP P, FnQ Q, FnR R, FnS S, FnT T, FnU U); |
254 | | |
255 | | // Special case: implement `Tuple` for `()`, the unit type. |
256 | | // This can come up in macros which accept a variable number of arguments. |
257 | | // Literally, `()` is an empty tuple, so it should simply parse nothing. |
258 | | impl<I, E: ParseError<I>> Tuple<I, (), E> for () { |
259 | 0 | fn parse(&mut self, input: I) -> IResult<I, (), E> { |
260 | 0 | Ok((input, ())) |
261 | 0 | } Unexecuted instantiation: <() as nom::sequence::Tuple<_, (), _>>::parse Unexecuted instantiation: <() as nom::sequence::Tuple<_, (), _>>::parse |
262 | | } |
263 | | |
264 | | ///Applies a tuple of parsers one by one and returns their results as a tuple. |
265 | | ///There is a maximum of 21 parsers |
266 | | /// ```rust |
267 | | /// # use nom::{Err, error::ErrorKind}; |
268 | | /// use nom::sequence::tuple; |
269 | | /// use nom::character::complete::{alpha1, digit1}; |
270 | | /// let mut parser = tuple((alpha1, digit1, alpha1)); |
271 | | /// |
272 | | /// assert_eq!(parser("abc123def"), Ok(("", ("abc", "123", "def")))); |
273 | | /// assert_eq!(parser("123def"), Err(Err::Error(("123def", ErrorKind::Alpha)))); |
274 | | /// ``` |
275 | 144M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( |
276 | 144M | mut l: List, |
277 | 144M | ) -> impl FnMut(I) -> IResult<I, O, E> { |
278 | 144M | move |i: I| l.parse(i) nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_indexed::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 23.0M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_dynamic_size::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 4.52M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_noindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 6.63M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_incindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 6.25M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_neverindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 207k | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 14.2M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u32), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 1.86M | move |i: I| l.parse(i) |
Unexecuted instantiation: nom::sequence::tuple::<_, _, _, _>::{closure#0}Unexecuted instantiation: nom::sequence::tuple::<&str, (f64, &str), nom::error::Error<&str>, (nom::sequence::preceded<&str, &str, f64, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::number::complete::double<&str, nom::error::Error<&str>>>::{closure#0}, nom::sequence::preceded<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, &str, str, nom::error::Error<&str>, nom::character::complete::not_line_ending<&str, nom::error::Error<&str>>, suricata::conf::get_memval::{closure#0}>::{closure#0}>::{closure#0})>::{closure#0}nom::sequence::tuple::<&[u8], (&[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8]), nom::error::Error<&[u8]>, (nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 32.1k | move |i: I| l.parse(i) |
nom::sequence::tuple::<&[u8], (&[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8]), nom::error::Error<&[u8]>, (nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 155k | move |i: I| l.parse(i) |
nom::sequence::tuple::<&[u8], (u8, u32), nom::error::Error<&[u8]>, (nom::number::streaming::be_u8<&[u8], nom::error::Error<&[u8]>>, nom::number::streaming::be_u32<&[u8], nom::error::Error<&[u8]>>)>::{closure#0}Line | Count | Source | 278 | 1.64M | move |i: I| l.parse(i) |
Unexecuted instantiation: nom::sequence::tuple::<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), nom::error::Error<&str>, (nom::character::complete::digit1<&str, nom::error::Error<&str>>, nom::combinator::opt<&str, (char, core::option::Option<&str>), nom::error::Error<&str>, nom::sequence::pair<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}>::{closure#0})>::{closure#0}Unexecuted instantiation: nom::sequence::tuple::<&str, (core::option::Option<char>, (), core::option::Option<(char, core::option::Option<char>, &str)>), nom::error::Error<&str>, (nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::branch::alt<&str, (), nom::error::Error<&str>, (nom::combinator::map<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), (), nom::error::Error<&str>, nom::sequence::tuple<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), nom::error::Error<&str>, (nom::character::complete::digit1<&str, nom::error::Error<&str>>, nom::combinator::opt<&str, (char, core::option::Option<&str>), nom::error::Error<&str>, nom::sequence::pair<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}>::{closure#0})>::{closure#0}, nom::number::complete::recognize_float<&str, nom::error::Error<&str>>::{closure#0}>::{closure#0}, nom::combinator::map<&str, (char, &str), (), nom::error::Error<&str>, nom::sequence::tuple<&str, (char, &str), nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::digit1<&str, nom::error::Error<&str>>)>::{closure#0}, nom::number::complete::recognize_float<&str, nom::error::Error<&str>>::{closure#1}>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, nom::sequence::tuple<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, (nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::combinator::cut<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0})>::{closure#0}>::{closure#0})>::{closure#0}nom::sequence::tuple::<&str, (suricata::detect::requires::VersionCompareOp, suricata::detect::requires::SuricataVersion), nom::error::Error<&str>, (suricata::detect::requires::parse_op, suricata::detect::requires::parse_version)>::{closure#0}Line | Count | Source | 278 | 64.5k | move |i: I| l.parse(i) |
Unexecuted instantiation: nom::sequence::tuple::<&str, (char, &str), nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::digit1<&str, nom::error::Error<&str>>)>::{closure#0}Unexecuted instantiation: nom::sequence::tuple::<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, (nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::combinator::cut<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0})>::{closure#0}nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_class_options::{closure#0}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_class_options::{closure#1}>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 2.25M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_indexed::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 21.8M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_dynamic_size::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 2.11M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_noindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 2.26M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_incindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 3.39M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_neverindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 172k | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 7.37M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#0}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#1}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#2}>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 36.6k | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 179k | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 39.8M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8, u8, u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 34.2k | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u8, u32), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 6.33M | move |i: I| l.parse(i) |
nom::sequence::tuple::<(&[u8], usize), (u32, u32, u32), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 178k | move |i: I| l.parse(i) |
nom::sequence::tuple::<&str, (core::option::Option<&str>, core::option::Option<&str>, core::option::Option<&str>, core::option::Option<(&str, u32)>, core::option::Option<(&str, u16)>, core::option::Option<(&str, i32)>, core::option::Option<&str>), nom::error::Error<&str>, (nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::bitstring_overflow>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::double_overflow>::{closure#0}, nom::combinator::opt<&str, (&str, u32), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::oversize_length>::{closure#0}, nom::combinator::opt<&str, (&str, u16), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::absolute_offset>::{closure#0}, nom::combinator::opt<&str, (&str, i32), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::relative_offset>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::branch::alt<&str, &str, nom::error::Error<&str>, (nom::character::complete::multispace1<&str, nom::error::Error<&str>>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0})>::{closure#0}Line | Count | Source | 278 | 5.65k | move |i: I| l.parse(i) |
Unexecuted instantiation: nom::sequence::tuple::<_, _, _, _>::{closure#0} |
279 | 144M | } nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_indexed::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 23.0M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 23.0M | mut l: List, | 277 | 23.0M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 23.0M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_dynamic_size::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 4.52M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 4.52M | mut l: List, | 277 | 4.52M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 4.52M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_noindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 6.63M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 6.63M | mut l: List, | 277 | 6.63M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 6.63M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_incindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 6.25M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 6.25M | mut l: List, | 277 | 6.25M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 6.25M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_neverindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 207k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 207k | mut l: List, | 277 | 207k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 207k | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 14.2M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 14.2M | mut l: List, | 277 | 14.2M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 14.2M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u32), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 1.86M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 1.86M | mut l: List, | 277 | 1.86M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 1.86M | } |
Unexecuted instantiation: nom::sequence::tuple::<_, _, _, _> nom::sequence::tuple::<&[u8], (u8, u32), nom::error::Error<&[u8]>, (nom::number::streaming::be_u8<&[u8], nom::error::Error<&[u8]>>, nom::number::streaming::be_u32<&[u8], nom::error::Error<&[u8]>>)> Line | Count | Source | 275 | 1.64M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 1.64M | mut l: List, | 277 | 1.64M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 1.64M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u32), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 6.33M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 6.33M | mut l: List, | 277 | 6.33M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 6.33M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 39.8M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 39.8M | mut l: List, | 277 | 39.8M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 39.8M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8, u8, u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 34.2k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 34.2k | mut l: List, | 277 | 34.2k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 34.2k | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 179k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 179k | mut l: List, | 277 | 179k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 179k | } |
nom::sequence::tuple::<(&[u8], usize), (u32, u32, u32), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u32, u32, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 178k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 178k | mut l: List, | 277 | 178k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 178k | } |
Unexecuted instantiation: nom::sequence::tuple::<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), nom::error::Error<&str>, (nom::character::complete::digit1<&str, nom::error::Error<&str>>, nom::combinator::opt<&str, (char, core::option::Option<&str>), nom::error::Error<&str>, nom::sequence::pair<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}>::{closure#0})>Unexecuted instantiation: nom::sequence::tuple::<&str, (core::option::Option<char>, (), core::option::Option<(char, core::option::Option<char>, &str)>), nom::error::Error<&str>, (nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::branch::alt<&str, (), nom::error::Error<&str>, (nom::combinator::map<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), (), nom::error::Error<&str>, nom::sequence::tuple<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), nom::error::Error<&str>, (nom::character::complete::digit1<&str, nom::error::Error<&str>>, nom::combinator::opt<&str, (char, core::option::Option<&str>), nom::error::Error<&str>, nom::sequence::pair<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}>::{closure#0})>::{closure#0}, nom::number::complete::recognize_float<&str, nom::error::Error<&str>>::{closure#0}>::{closure#0}, nom::combinator::map<&str, (char, &str), (), nom::error::Error<&str>, nom::sequence::tuple<&str, (char, &str), nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::digit1<&str, nom::error::Error<&str>>)>::{closure#0}, nom::number::complete::recognize_float<&str, nom::error::Error<&str>>::{closure#1}>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, nom::sequence::tuple<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, (nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::combinator::cut<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0})>::{closure#0}>::{closure#0})>Unexecuted instantiation: nom::sequence::tuple::<&str, (char, &str), nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::digit1<&str, nom::error::Error<&str>>)>Unexecuted instantiation: nom::sequence::tuple::<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>, (nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::combinator::cut<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0})>nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_indexed::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 21.8M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 21.8M | mut l: List, | 277 | 21.8M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 21.8M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_dynamic_size::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 2.11M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 2.11M | mut l: List, | 277 | 2.11M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 2.11M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_noindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 2.26M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 2.26M | mut l: List, | 277 | 2.26M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 2.26M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_incindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 3.39M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 3.39M | mut l: List, | 277 | 3.39M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 3.39M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::http2::parser::http2_parse_headers_block_literal_neverindex::parser::{closure#0}>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 172k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 172k | mut l: List, | 277 | 172k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 172k | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0})>Line | Count | Source | 275 | 7.37M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 7.37M | mut l: List, | 277 | 7.37M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 7.37M | } |
Unexecuted instantiation: nom::sequence::tuple::<&str, (f64, &str), nom::error::Error<&str>, (nom::sequence::preceded<&str, &str, f64, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::number::complete::double<&str, nom::error::Error<&str>>>::{closure#0}, nom::sequence::preceded<&str, &str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>, nom::combinator::verify<&str, &str, str, nom::error::Error<&str>, nom::character::complete::not_line_ending<&str, nom::error::Error<&str>>, suricata::conf::get_memval::{closure#0}>::{closure#0}>::{closure#0})>nom::sequence::tuple::<&[u8], (&[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8]), nom::error::Error<&[u8]>, (nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0})>Line | Count | Source | 275 | 32.1k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 32.1k | mut l: List, | 277 | 32.1k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 32.1k | } |
nom::sequence::tuple::<&[u8], (&[u8], &[u8], &[u8], &[u8], &[u8], &[u8], &[u8]), nom::error::Error<&[u8]>, (nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0}, nom::character::complete::digit1<&[u8], nom::error::Error<&[u8]>>, nom::bytes::complete::tag<&str, &[u8], nom::error::Error<&[u8]>>::{closure#0})>Line | Count | Source | 275 | 155k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 155k | mut l: List, | 277 | 155k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 155k | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_class_options::{closure#0}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_class_options::{closure#1}>::{closure#0})>Line | Count | Source | 275 | 2.25M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 2.25M | mut l: List, | 277 | 2.25M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 2.25M | } |
nom::sequence::tuple::<(&[u8], usize), (u8, u8, u8), nom::error::Error<(&[u8], usize)>, (nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#0}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#1}>::{closure#0}, nom::combinator::verify<(&[u8], usize), u8, u8, nom::error::Error<(&[u8], usize)>, nom::bits::streaming::take<&[u8], u8, u8, nom::error::Error<(&[u8], usize)>>::{closure#0}, suricata::rdp::parser::parse_x223_data_class_0::parser::{closure#2}>::{closure#0})>Line | Count | Source | 275 | 36.6k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 36.6k | mut l: List, | 277 | 36.6k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 36.6k | } |
nom::sequence::tuple::<&str, (core::option::Option<&str>, core::option::Option<&str>, core::option::Option<&str>, core::option::Option<(&str, u32)>, core::option::Option<(&str, u16)>, core::option::Option<(&str, i32)>, core::option::Option<&str>), nom::error::Error<&str>, (nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::multispace0<&str, nom::error::Error<&str>>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::bitstring_overflow>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::double_overflow>::{closure#0}, nom::combinator::opt<&str, (&str, u32), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::oversize_length>::{closure#0}, nom::combinator::opt<&str, (&str, u16), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::absolute_offset>::{closure#0}, nom::combinator::opt<&str, (&str, i32), nom::error::Error<&str>, suricata::asn1::parse_rules::asn1_parse_rule::relative_offset>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::branch::alt<&str, &str, nom::error::Error<&str>, (nom::character::complete::multispace1<&str, nom::error::Error<&str>>, nom::bytes::complete::tag<&str, &str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0})>Line | Count | Source | 275 | 5.65k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 5.65k | mut l: List, | 277 | 5.65k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 5.65k | } |
nom::sequence::tuple::<&str, (suricata::detect::requires::VersionCompareOp, suricata::detect::requires::SuricataVersion), nom::error::Error<&str>, (suricata::detect::requires::parse_op, suricata::detect::requires::parse_version)> Line | Count | Source | 275 | 10.9k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 10.9k | mut l: List, | 277 | 10.9k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 10.9k | } |
Unexecuted instantiation: nom::sequence::tuple::<_, _, _, _> |