Macro peel_ip::prelude::method []

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

Makes a method from a parser combination

The must be set up because the compiler needs the information

method!(my_function<Parser<'a> >( &[u8] ) -> &[u8], tag!("abcd"));
// first type parameter is `self`'s type, second is input, third is output
method!(my_function<Parser<'a>, &[u8], &[u8]>,     tag!("abcd"));
//prefix them with 'pub' to make the methods public
method!(pub my_function<Parser<'a>,&[u8], &[u8]>, tag!("abcd"));