nom::flat_map!
[−]
[src]
macro_rules! flat_map( ($i:expr, $submac:ident!( $($args:tt)* ), $submac2:ident!( $($args2:tt)* )) => ( { match $submac!($i, $($args)*) { $crate::IResult::Error(e) => $crate::IResult::Error(e), $crate::IResult::Incomplete($crate::Needed::Unknown) => $crate::IResult::Incomplete($crate::Needed::Unknown), $crate::IResult::Incomplete($crate::Needed::Size(i)) => $crate::IResult::Incomplete($crate::Needed::Size(i)), $crate::IResult::Done(i, o) => match $submac2!(o, $($args2)*) { $crate::IResult::Error(e) => $crate::IResult::Error(e), $crate::IResult::Incomplete($crate::Needed::Unknown) => $crate::IResult::Incomplete($crate::Needed::Unknown), $crate::IResult::Incomplete($crate::Needed::Size(ref i2)) => $crate::IResult::Incomplete($crate::Needed::Size(*i2)), $crate::IResult::Done(_, o2) => $crate::IResult::Done(i, o2) } } } ); ($i:expr, $submac:ident!( $($args:tt)* ), $g:expr) => ( flat_map!($i, $submac!($($args)*), call!($g)); ); ($i:expr, $f:expr, $g:expr) => ( flat_map!($i, call!($f), call!($g)); ); ($i:expr, $f:expr, $submac:ident!( $($args:tt)* )) => ( flat_map!($i, call!($f), $submac!($($args)*)); ); );
flat_map!(R -> IResult<R,S>, S -> IResult<S,T>) => R -> IResult<R, T>
combines a parser R -> IResult to return another
parser R -> IResult