Macro peel_ip::prelude::flat_map []

macro_rules! flat_map {
    (
$ i : expr , $ submac : ident ! ( $ ( $ args : tt ) * ) , $ submac2 : ident !
( $ ( $ args2 : tt ) * ) ) => { ... };
    ( $ i : expr , $ submac : ident ! ( $ ( $ args : tt ) * ) , $ g : expr ) => { ... };
    (
$ i : expr , $ f : expr , $ g : expr ) => { ... };
    (
$ i : expr , $ f : expr , $ submac : ident ! ( $ ( $ args : tt ) * ) ) => { ... };
}

flat_map!(R -> IResult<R,S>, S -> IResult<S,T>) => R -> IResult<R, T>

combines a parser R -> IResult and a parser S -> IResult to return another parser R -> IResult