Coverage Report

Created: 2026-02-14 06:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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)>>>::parse
Line
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>>>::parse
Unexecuted instantiation: <(nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}, nom::combinator::opt<&str, char, nom::error::Error<&str>, nom::branch::alt<&str, char, nom::error::Error<&str>, (nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0})>::{closure#0}>::{closure#0}, nom::combinator::cut<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}) as nom::sequence::Tuple<&str, (char, core::option::Option<char>, &str), nom::error::Error<&str>>>::parse
Unexecuted instantiation: <(nom::character::complete::digit1<&str, nom::error::Error<&str>>, nom::combinator::opt<&str, (char, core::option::Option<&str>), nom::error::Error<&str>, nom::sequence::pair<&str, char, core::option::Option<&str>, nom::error::Error<&str>, nom::character::complete::char<&str, nom::error::Error<&str>>::{closure#0}, nom::combinator::opt<&str, &str, nom::error::Error<&str>, nom::character::complete::digit1<&str, nom::error::Error<&str>>>::{closure#0}>::{closure#0}>::{closure#0}) as nom::sequence::Tuple<&str, (&str, core::option::Option<(char, core::option::Option<&str>)>), nom::error::Error<&str>>>::parse
Unexecuted 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]>>>::parse
Line
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]>>>::parse
Line
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::<_, _, _, _>