Macro peel_ip::prelude::named []

macro_rules! named {
    ( # $ ( $ args : tt ) * ) => { ... };
    (
$ name : ident ( $ i : ty ) -> $ o : ty , $ submac : ident ! (
$ ( $ args : tt ) * ) ) => { ... };
    (
$ name : ident < $ i : ty , $ o : ty , $ e : ty > , $ submac : ident ! (
$ ( $ args : tt ) * ) ) => { ... };
    (
$ name : ident < $ i : ty , $ o : ty > , $ submac : ident ! (
$ ( $ args : tt ) * ) ) => { ... };
    (
$ name : ident < $ o : ty > , $ submac : ident ! ( $ ( $ args : tt ) * ) ) => { ... };
    (
$ name : ident , $ submac : ident ! ( $ ( $ args : tt ) * ) ) => { ... };
    (
pub $ name : ident ( $ i : ty ) -> $ o : ty , $ submac : ident ! (
$ ( $ args : tt ) * ) ) => { ... };
    (
pub $ name : ident < $ i : ty , $ o : ty , $ e : ty > , $ submac : ident ! (
$ ( $ args : tt ) * ) ) => { ... };
    (
pub $ name : ident < $ i : ty , $ o : ty > , $ submac : ident ! (
$ ( $ args : tt ) * ) ) => { ... };
    (
pub $ name : ident < $ o : ty > , $ submac : ident ! ( $ ( $ args : tt ) * ) ) => { ... };
    (
pub $ name : ident , $ submac : ident ! ( $ ( $ args : tt ) * ) ) => { ... };
}

Makes a function from a parser combination

The type can be set up if the compiler needs more information

named!(my_function( &[u8] ) -> &[u8], tag!("abcd"));
// first type parameter is input, second is output
named!(my_function<&[u8], &[u8]>,     tag!("abcd"));
// will have &[u8] as input type, &[u8] as output type
named!(my_function,                   tag!("abcd"));
// will use &[u8] as input type (use this if the compiler
// complains about lifetime issues
named!(my_function<&[u8]>,            tag!("abcd"));
//prefix them with 'pub' to make the functions public
named!(pub my_function,               tag!("abcd"));