Coverage Report

Created: 2026-06-30 07:20

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