/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 | 713k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( |
30 | 713k | mut first: F, |
31 | 713k | mut second: G, |
32 | 713k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> |
33 | 713k | where |
34 | 713k | F: Parser<I, O1, E>, |
35 | 713k | G: Parser<I, O2, E>, |
36 | | { |
37 | 16.7M | move |input: I| { |
38 | 16.7M | let (input, o1) = first.parse(input)?; |
39 | 460k | 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 | 321k | 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 | 14.1k | 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}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 | 67.8k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _>::{closure#0}::{closure#0} |
40 | 16.7M | } 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 | 321k | move |input: I| { | 38 | 321k | let (input, o1) = first.parse(input)?; | 39 | 321k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | 321k | } |
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 | 16.3M | move |input: I| { | 38 | 16.3M | let (input, o1) = first.parse(input)?; | 39 | 71.1k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | 16.3M | } |
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}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 | 71.2k | move |input: I| { | 38 | 71.2k | let (input, o1) = first.parse(input)?; | 39 | 68.6k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 40 | 71.2k | } |
Unexecuted instantiation: nom::sequence::pair::<_, _, _, _, _, _>::{closure#0} |
41 | 713k | } 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 | 321k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( | 30 | 321k | mut first: F, | 31 | 321k | mut second: G, | 32 | 321k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> | 33 | 321k | where | 34 | 321k | F: Parser<I, O1, E>, | 35 | 321k | 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 | 321k | } |
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 | 321k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( | 30 | 321k | mut first: F, | 31 | 321k | mut second: G, | 32 | 321k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> | 33 | 321k | where | 34 | 321k | F: Parser<I, O1, E>, | 35 | 321k | 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 | 321k | } |
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 | 71.2k | pub fn pair<I, O1, O2, E: ParseError<I>, F, G>( | 30 | 71.2k | mut first: F, | 31 | 71.2k | mut second: G, | 32 | 71.2k | ) -> impl FnMut(I) -> IResult<I, (O1, O2), E> | 33 | 71.2k | where | 34 | 71.2k | F: Parser<I, O1, E>, | 35 | 71.2k | 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 | 71.2k | } |
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 | 639k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( |
64 | 639k | mut first: F, |
65 | 639k | mut second: G, |
66 | 639k | ) -> impl FnMut(I) -> IResult<I, O2, E> |
67 | 639k | where |
68 | 639k | F: Parser<I, O1, E>, |
69 | 639k | G: Parser<I, O2, E>, |
70 | | { |
71 | 16.7M | move |input: I| { |
72 | 16.7M | let (input, _) = first.parse(input)?; |
73 | 16.7M | second.parse(input) |
74 | 16.7M | } 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 | 16.3M | move |input: I| { | 72 | 16.3M | let (input, _) = first.parse(input)?; | 73 | 16.3M | second.parse(input) | 74 | 16.3M | } |
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 | 24.4k | move |input: I| { | 72 | 24.4k | let (input, _) = first.parse(input)?; | 73 | 24.4k | second.parse(input) | 74 | 24.4k | } |
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 | 116k | move |input: I| { | 72 | 116k | let (input, _) = first.parse(input)?; | 73 | 116k | second.parse(input) | 74 | 116k | } |
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 | 49.5k | move |input: I| { | 72 | 49.5k | let (input, _) = first.parse(input)?; | 73 | 49.5k | second.parse(input) | 74 | 49.5k | } |
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 | 49.5k | move |input: I| { | 72 | 49.5k | let (input, _) = first.parse(input)?; | 73 | 49.5k | second.parse(input) | 74 | 49.5k | } |
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 | 61.9k | move |input: I| { | 72 | 61.9k | let (input, _) = first.parse(input)?; | 73 | 61.9k | second.parse(input) | 74 | 61.9k | } |
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 | 56.9k | move |input: I| { | 72 | 56.9k | let (input, _) = first.parse(input)?; | 73 | 56.9k | second.parse(input) | 74 | 56.9k | } |
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 | 56.7k | move |input: I| { | 72 | 56.7k | let (input, _) = first.parse(input)?; | 73 | 55.9k | second.parse(input) | 74 | 56.7k | } |
Unexecuted instantiation: nom::sequence::preceded::<_, _, _, _, _, _>::{closure#0} |
75 | 639k | } 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 | 321k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 321k | mut first: F, | 65 | 321k | mut second: G, | 66 | 321k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 321k | where | 68 | 321k | F: Parser<I, O1, E>, | 69 | 321k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 321k | } |
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 | 49.5k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 49.5k | mut first: F, | 65 | 49.5k | mut second: G, | 66 | 49.5k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 49.5k | where | 68 | 49.5k | F: Parser<I, O1, E>, | 69 | 49.5k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 49.5k | } |
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.3k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 10.3k | mut first: F, | 65 | 10.3k | mut second: G, | 66 | 10.3k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 10.3k | where | 68 | 10.3k | F: Parser<I, O1, E>, | 69 | 10.3k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 10.3k | } |
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 | 49.5k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 49.5k | mut first: F, | 65 | 49.5k | mut second: G, | 66 | 49.5k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 49.5k | where | 68 | 49.5k | F: Parser<I, O1, E>, | 69 | 49.5k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 49.5k | } |
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 | 61.9k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 61.9k | mut first: F, | 65 | 61.9k | mut second: G, | 66 | 61.9k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 61.9k | where | 68 | 61.9k | F: Parser<I, O1, E>, | 69 | 61.9k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 61.9k | } |
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 | 56.9k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 56.9k | mut first: F, | 65 | 56.9k | mut second: G, | 66 | 56.9k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 56.9k | where | 68 | 56.9k | F: Parser<I, O1, E>, | 69 | 56.9k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 56.9k | } |
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 | 56.7k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 56.7k | mut first: F, | 65 | 56.7k | mut second: G, | 66 | 56.7k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 56.7k | where | 68 | 56.7k | F: Parser<I, O1, E>, | 69 | 56.7k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 56.7k | } |
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 | 33.1k | pub fn preceded<I, O1, O2, E: ParseError<I>, F, G>( | 64 | 33.1k | mut first: F, | 65 | 33.1k | mut second: G, | 66 | 33.1k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 67 | 33.1k | where | 68 | 33.1k | F: Parser<I, O1, E>, | 69 | 33.1k | G: Parser<I, O2, E>, | 70 | | { | 71 | | move |input: I| { | 72 | | let (input, _) = first.parse(input)?; | 73 | | second.parse(input) | 74 | | } | 75 | 33.1k | } |
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.44M | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( |
98 | 1.44M | mut first: F, |
99 | 1.44M | mut second: G, |
100 | 1.44M | ) -> impl FnMut(I) -> IResult<I, O1, E> |
101 | 1.44M | where |
102 | 1.44M | F: Parser<I, O1, E>, |
103 | 1.44M | G: Parser<I, O2, E>, |
104 | | { |
105 | 17.4M | move |input: I| { |
106 | 17.4M | let (input, o1) = first.parse(input)?; |
107 | 17.0M | 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 | 465k | 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 | 463k | 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 | 16.0M | 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 | 2.27k | 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 | 71.5k | 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 | 15.6k | 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 | 337 | 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.51k | 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.21k | second.parse(input).map(|(i, _)| (i, o1)) |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _>::{closure#0}::{closure#0} |
108 | 17.4M | } 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 | 465k | move |input: I| { | 106 | 465k | let (input, o1) = first.parse(input)?; | 107 | 465k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 465k | } |
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 | 463k | move |input: I| { | 106 | 463k | let (input, o1) = first.parse(input)?; | 107 | 463k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 463k | } |
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 | 16.3M | move |input: I| { | 106 | 16.3M | let (input, o1) = first.parse(input)?; | 107 | 16.0M | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 16.3M | } |
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 | 3.61k | move |input: I| { | 106 | 3.61k | let (input, o1) = first.parse(input)?; | 107 | 2.43k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 3.61k | } |
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 | 112k | move |input: I| { | 106 | 112k | let (input, o1) = first.parse(input)?; | 107 | 71.5k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 112k | } |
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 | 60.0k | move |input: I| { | 106 | 60.0k | let (input, o1) = first.parse(input)?; | 107 | 22.7k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 60.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 | 754 | move |input: I| { | 106 | 754 | let (input, o1) = first.parse(input)?; | 107 | 342 | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 754 | } |
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 | 12.5k | move |input: I| { | 106 | 12.5k | let (input, o1) = first.parse(input)?; | 107 | 4.52k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 12.5k | } |
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.76k | move |input: I| { | 106 | 1.76k | let (input, o1) = first.parse(input)?; | 107 | 1.70k | second.parse(input).map(|(i, _)| (i, o1)) | 108 | 1.76k | } |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _>::{closure#0} |
109 | 1.44M | } 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 | 321k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 321k | mut first: F, | 99 | 321k | mut second: G, | 100 | 321k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 321k | where | 102 | 321k | F: Parser<I, O1, E>, | 103 | 321k | 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 | 321k | } |
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 | 463k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 463k | mut first: F, | 99 | 463k | mut second: G, | 100 | 463k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 463k | where | 102 | 463k | F: Parser<I, O1, E>, | 103 | 463k | 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 | 463k | } |
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 | 465k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 465k | mut first: F, | 99 | 465k | mut second: G, | 100 | 465k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 465k | where | 102 | 465k | F: Parser<I, O1, E>, | 103 | 465k | 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 | 465k | } |
Unexecuted instantiation: nom::sequence::terminated::<_, _, _, _, _, _> 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 | 3.61k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 3.61k | mut first: F, | 99 | 3.61k | mut second: G, | 100 | 3.61k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 3.61k | where | 102 | 3.61k | F: Parser<I, O1, E>, | 103 | 3.61k | 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 | 3.61k | } |
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 | 60.0k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 60.0k | mut first: F, | 99 | 60.0k | mut second: G, | 100 | 60.0k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 60.0k | where | 102 | 60.0k | F: Parser<I, O1, E>, | 103 | 60.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 | 60.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 | 754 | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 754 | mut first: F, | 99 | 754 | mut second: G, | 100 | 754 | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 754 | where | 102 | 754 | F: Parser<I, O1, E>, | 103 | 754 | 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 | 754 | } |
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 | 12.5k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 12.5k | mut first: F, | 99 | 12.5k | mut second: G, | 100 | 12.5k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 12.5k | where | 102 | 12.5k | F: Parser<I, O1, E>, | 103 | 12.5k | 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 | 12.5k | } |
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 | 112k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 112k | mut first: F, | 99 | 112k | mut second: G, | 100 | 112k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 112k | where | 102 | 112k | F: Parser<I, O1, E>, | 103 | 112k | 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 | 112k | } |
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.76k | pub fn terminated<I, O1, O2, E: ParseError<I>, F, G>( | 98 | 1.76k | mut first: F, | 99 | 1.76k | mut second: G, | 100 | 1.76k | ) -> impl FnMut(I) -> IResult<I, O1, E> | 101 | 1.76k | where | 102 | 1.76k | F: Parser<I, O1, E>, | 103 | 1.76k | 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.76k | } |
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 | 18.1k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( |
134 | 18.1k | mut first: F, |
135 | 18.1k | mut sep: G, |
136 | 18.1k | mut second: H, |
137 | 18.1k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> |
138 | 18.1k | where |
139 | 18.1k | F: Parser<I, O1, E>, |
140 | 18.1k | G: Parser<I, O2, E>, |
141 | 18.1k | H: Parser<I, O3, E>, |
142 | | { |
143 | 18.1k | move |input: I| { |
144 | 18.1k | let (input, o1) = first.parse(input)?; |
145 | 3.93k | let (input, _) = sep.parse(input)?; |
146 | 3.68k | 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 | 978 | 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 | 1.01k | 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.62k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) |
Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _>::{closure#0}::{closure#0} |
147 | 18.1k | } 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 | 6.06k | move |input: I| { | 144 | 6.06k | let (input, o1) = first.parse(input)?; | 145 | 1.02k | let (input, _) = sep.parse(input)?; | 146 | 1.01k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | 6.06k | } |
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 | 6.06k | move |input: I| { | 144 | 6.06k | let (input, o1) = first.parse(input)?; | 145 | 1.26k | let (input, _) = sep.parse(input)?; | 146 | 1.02k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | 6.06k | } |
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 | 6.06k | move |input: I| { | 144 | 6.06k | let (input, o1) = first.parse(input)?; | 145 | 1.63k | let (input, _) = sep.parse(input)?; | 146 | 1.63k | second.parse(input).map(|(i, o2)| (i, (o1, o2))) | 147 | 6.06k | } |
Unexecuted instantiation: nom::sequence::separated_pair::<_, _, _, _, _, _, _, _>::{closure#0} |
148 | 18.1k | } 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 | 6.06k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 134 | 6.06k | mut first: F, | 135 | 6.06k | mut sep: G, | 136 | 6.06k | mut second: H, | 137 | 6.06k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> | 138 | 6.06k | where | 139 | 6.06k | F: Parser<I, O1, E>, | 140 | 6.06k | G: Parser<I, O2, E>, | 141 | 6.06k | 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 | 6.06k | } |
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 | 6.06k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 134 | 6.06k | mut first: F, | 135 | 6.06k | mut sep: G, | 136 | 6.06k | mut second: H, | 137 | 6.06k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> | 138 | 6.06k | where | 139 | 6.06k | F: Parser<I, O1, E>, | 140 | 6.06k | G: Parser<I, O2, E>, | 141 | 6.06k | 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 | 6.06k | } |
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 | 6.06k | pub fn separated_pair<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 134 | 6.06k | mut first: F, | 135 | 6.06k | mut sep: G, | 136 | 6.06k | mut second: H, | 137 | 6.06k | ) -> impl FnMut(I) -> IResult<I, (O1, O3), E> | 138 | 6.06k | where | 139 | 6.06k | F: Parser<I, O1, E>, | 140 | 6.06k | G: Parser<I, O2, E>, | 141 | 6.06k | 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 | 6.06k | } |
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 | 843k | pub fn delimited<I, O1, O2, O3, E: ParseError<I>, F, G, H>( |
173 | 843k | mut first: F, |
174 | 843k | mut second: G, |
175 | 843k | mut third: H, |
176 | 843k | ) -> impl FnMut(I) -> IResult<I, O2, E> |
177 | 843k | where |
178 | 843k | F: Parser<I, O1, E>, |
179 | 843k | G: Parser<I, O2, E>, |
180 | 843k | H: Parser<I, O3, E>, |
181 | | { |
182 | 843k | move |input: I| { |
183 | 843k | let (input, _) = first.parse(input)?; |
184 | 843k | let (input, o2) = second.parse(input)?; |
185 | 834k | 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 | 768k | 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 | 66.3k | third.parse(input).map(|(i, _)| (i, o2)) |
Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _>::{closure#0}::{closure#0} |
186 | 843k | } 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 | 769k | move |input: I| { | 183 | 769k | let (input, _) = first.parse(input)?; | 184 | 769k | let (input, o2) = second.parse(input)?; | 185 | 768k | third.parse(input).map(|(i, _)| (i, o2)) | 186 | 769k | } |
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 | 74.1k | move |input: I| { | 183 | 74.1k | let (input, _) = first.parse(input)?; | 184 | 74.1k | let (input, o2) = second.parse(input)?; | 185 | 66.3k | third.parse(input).map(|(i, _)| (i, o2)) | 186 | 74.1k | } |
Unexecuted instantiation: nom::sequence::delimited::<_, _, _, _, _, _, _, _>::{closure#0} |
187 | 843k | } 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 | 769k | pub fn delimited<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 173 | 769k | mut first: F, | 174 | 769k | mut second: G, | 175 | 769k | mut third: H, | 176 | 769k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 177 | 769k | where | 178 | 769k | F: Parser<I, O1, E>, | 179 | 769k | G: Parser<I, O2, E>, | 180 | 769k | 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 | 769k | } |
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 | 74.1k | pub fn delimited<I, O1, O2, O3, E: ParseError<I>, F, G, H>( | 173 | 74.1k | mut first: F, | 174 | 74.1k | mut second: G, | 175 | 74.1k | mut third: H, | 176 | 74.1k | ) -> impl FnMut(I) -> IResult<I, O2, E> | 177 | 74.1k | where | 178 | 74.1k | F: Parser<I, O1, E>, | 179 | 74.1k | G: Parser<I, O2, E>, | 180 | 74.1k | 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 | 74.1k | } |
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 | 149M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { |
227 | 149M | tuple_trait_inner!(0, self, input, (), $($name)+) |
228 | | |
229 | 149M | } <(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 | 30.0M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 30.0M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 30.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 | 3.72M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 3.72M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 3.72M | } |
<(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 | 1.91M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 1.91M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 1.91M | } |
<(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 | 9.54M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 9.54M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 9.54M | } |
<(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 | 166k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 166k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 166k | } |
<(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 | 12.8M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 12.8M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 12.8M | } |
<(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 | 2.03M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 2.03M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 2.03M | } |
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::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.47M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 2.47M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 2.47M | } |
<(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.1M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 23.1M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 23.1M | } |
<(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.13M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 2.13M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 2.13M | } |
<(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 | 3.71M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 3.71M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 3.71M | } |
<(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 | 4.98M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 4.98M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 4.98M | } |
<(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 | 114k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 114k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 114k | } |
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 | 39.9k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 39.9k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 39.9k | } |
<(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 | 6.06k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 6.06k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 6.06k | } |
<(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 | 10.4M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 10.4M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 10.4M | } |
<(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 | 7.69M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 7.69M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 7.69M | } |
<(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 | 160k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 160k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 160k | } |
<(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 | 159k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 159k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 159k | } |
<(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 | 32.0M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 32.0M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 32.0M | } |
<(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 | 36.4k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 36.4k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 36.4k | } |
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>>>::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>>>::parseUnexecuted 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>>>::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 | 47.4k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 47.4k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 47.4k | } |
<(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 | 18.1k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 18.1k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 18.1k | } |
<(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.44M | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 1.44M | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 1.44M | } |
<(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 | 61.9k | fn parse(&mut self, input: Input) -> IResult<Input, ( $($ty),+ ), Error> { | 227 | 61.9k | tuple_trait_inner!(0, self, input, (), $($name)+) | 228 | | | 229 | 61.9k | } |
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 | 149M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( |
276 | 149M | mut l: List, |
277 | 149M | ) -> impl FnMut(I) -> IResult<I, O, E> { |
278 | 149M | 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 | 30.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 | 3.72M | 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 | 1.91M | 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 | 9.54M | 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 | 166k | 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 | 12.8M | 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 | 2.03M | 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 | 18.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 | 47.4k | 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.44M | 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 | 61.9k | 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.47M | 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.1M | 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.13M | 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 | 3.71M | 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 | 4.98M | 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 | 114k | 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 | 10.4M | 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 | 39.9k | 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 | 160k | 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 | 32.0M | 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 | 36.4k | 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 | 7.69M | 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 | 159k | 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 | 6.06k | move |i: I| l.parse(i) |
Unexecuted instantiation: nom::sequence::tuple::<_, _, _, _>::{closure#0} |
279 | 149M | } 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 | 30.0M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 30.0M | mut l: List, | 277 | 30.0M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 30.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 | 3.72M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 3.72M | mut l: List, | 277 | 3.72M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 3.72M | } |
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 | 1.91M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 1.91M | mut l: List, | 277 | 1.91M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 1.91M | } |
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 | 9.54M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 9.54M | mut l: List, | 277 | 9.54M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 9.54M | } |
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 | 166k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 166k | mut l: List, | 277 | 166k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 166k | } |
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 | 12.8M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 12.8M | mut l: List, | 277 | 12.8M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 12.8M | } |
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 | 2.03M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 2.03M | mut l: List, | 277 | 2.03M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 2.03M | } |
Unexecuted instantiation: nom::sequence::tuple::<_, _, _, _> 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 | 32.0M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 32.0M | mut l: List, | 277 | 32.0M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 32.0M | } |
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 | 36.4k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 36.4k | mut l: List, | 277 | 36.4k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 36.4k | } |
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 | 18.1k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 18.1k | mut l: List, | 277 | 18.1k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 18.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 | 47.4k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 47.4k | mut l: List, | 277 | 47.4k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 47.4k | } |
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.47M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 2.47M | mut l: List, | 277 | 2.47M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 2.47M | } |
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 | 39.9k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 39.9k | mut l: List, | 277 | 39.9k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 39.9k | } |
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, 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 | 160k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 160k | mut l: List, | 277 | 160k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 160k | } |
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 | 159k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 159k | mut l: List, | 277 | 159k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 159k | } |
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 | 6.06k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 6.06k | mut l: List, | 277 | 6.06k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 6.06k | } |
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.3k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 10.3k | mut l: List, | 277 | 10.3k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 10.3k | } |
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.44M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 1.44M | mut l: List, | 277 | 1.44M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 1.44M | } |
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.1M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 23.1M | mut l: List, | 277 | 23.1M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 23.1M | } |
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.13M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 2.13M | mut l: List, | 277 | 2.13M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 2.13M | } |
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 | 3.71M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 3.71M | mut l: List, | 277 | 3.71M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 3.71M | } |
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 | 4.98M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 4.98M | mut l: List, | 277 | 4.98M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 4.98M | } |
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 | 114k | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 114k | mut l: List, | 277 | 114k | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 114k | } |
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 | 10.4M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 10.4M | mut l: List, | 277 | 10.4M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 10.4M | } |
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 | 7.69M | pub fn tuple<I, O, E: ParseError<I>, List: Tuple<I, O, E>>( | 276 | 7.69M | mut l: List, | 277 | 7.69M | ) -> impl FnMut(I) -> IResult<I, O, E> { | 278 | | move |i: I| l.parse(i) | 279 | 7.69M | } |
Unexecuted instantiation: nom::sequence::tuple::<_, _, _, _> |