Macro make_signature

Source
macro_rules! make_signature {
    (new $($tt:tt)*) => { ... };
    (@size;) => { ... };
    (@size; fixed($expr:expr) $($tt:tt)*) => { ... };
    (@size; nameof($expr:expr) $($tt:tt)*) => { ... };
    (@size; numof($expr:expr) $($tt:tt)*) => { ... };
    (@size; shift_left($expr:expr) $($tt:tt)*) => { ... };
    (@data($dst:ident, $dst_offset:ident);) => { ... };
    (@data($dst:ident, $dst_offset:ident); fixed($expr:expr) $($tt:tt)*) => { ... };
    (@data($dst:ident, $dst_offset:ident); nameof($expr:expr) $($tt:tt)*) => { ... };
    (@data($dst:ident, $dst_offset:ident); numof($expr:expr) $($tt:tt)*) => { ... };
    (@data($dst:ident, $dst_offset:ident); shift_left($expr:expr) $($tt:tt)*) => { ... };
    (@copy($src:expr, $dst:expr, $src_len:expr, $dst_offset:ident)) => { ... };
}
Expand description

§Macro to create signatures of types and functions.

Format for creating a type of signature:

make_signature!(new fixed("uint8")); // Simple type
make_signature!(new fixed("(") nameof(u8) fixed(",") nameof(u8) fixed(")")); // Composite type