Skip to content

Instantly share code, notes, and snippets.

@Geal

Geal/preproc.rs Secret

Created November 29, 2015 19:19
Show Gist options
  • Save Geal/fa3740cf45530d123023 to your computer and use it in GitHub Desktop.
Save Geal/fa3740cf45530d123023 to your computer and use it in GitHub Desktop.
fn message_header_value(i: &[u8]) -> ::nom::IResult<&[u8], &[u8]> {
{
{
use nom::InputLength;
match {
match i.iter().position(|c| !is_horizontal_space(*c)) {
Some(0) =>
::nom::IResult::Error(::nom::Err::Position(::nom::ErrorKind::TakeWhile1,
i)),
Some(n) => {
::nom::IResult::Done(&i[n..], &i[..n])
}
None => { ::nom::IResult::Done(&i[..0], i) }
}
} {
::nom::IResult::Error(e) => ::nom::IResult::Error(e),
::nom::IResult::Incomplete(::nom::Needed::Unknown) =>
::nom::IResult::Incomplete(::nom::Needed::Unknown),
::nom::IResult::Incomplete(::nom::Needed::Size(i)) =>
::nom::IResult::Incomplete(::nom::Needed::Size(0usize + i)),
::nom::IResult::Done(i, _) => {
{
use nom::InputLength;
match {
match i.iter().position(|c|
!not_line_ending(*c))
{
Some(0) =>
::nom::IResult::Error(::nom::Err::Position(::nom::ErrorKind::TakeWhile1,
i)),
Some(n) => {
::nom::IResult::Done(&i[n..],
&i[..n])
}
None => {
::nom::IResult::Done(&i[..0], i)
}
}
} {
::nom::IResult::Error(e) =>
::nom::IResult::Error(e),
::nom::IResult::Incomplete(::nom::Needed::Unknown)
=>
::nom::IResult::Incomplete(::nom::Needed::Unknown),
::nom::IResult::Incomplete(::nom::Needed::Size(i))
=>
::nom::IResult::Incomplete(::nom::Needed::Size(0usize
+
((i).input_len()
-
i.input_len())
+
i)),
::nom::IResult::Done(i, o) => {
let data = o;
match line_ending(i) {
::nom::IResult::Error(e) =>
::nom::IResult::Error(e),
::nom::IResult::Incomplete(::nom::Needed::Unknown)
=>
::nom::IResult::Incomplete(::nom::Needed::Unknown),
::nom::IResult::Incomplete(::nom::Needed::Size(i))
=>
::nom::IResult::Incomplete(::nom::Needed::Size(0usize
+
((i).input_len()
-
i.input_len())
+
((i).input_len()
-
i.input_len())
+
i)),
::nom::IResult::Done(i, _) => {
::nom::IResult::Done(i, (|| data)())
}
}
}
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment