jit_func

Macro jit_func 

Source
macro_rules! jit_func {
    (for ($base:expr) impl $exec:expr, fn($fn_id:expr),
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    (for ($base:expr) impl $exec:expr, fn($fn_id:expr),
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    (for ($base:expr) impl $exec:expr, fn($fn_id:expr), $runtime_id:expr,
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    (for ($base:expr) impl $exec:expr, fn($fn_id:expr), $runtime_id:expr,
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    (for ($base:expr) impl $exec:expr, fn<$($param:expr),*;>($fn_id:expr),
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    (for ($base:expr) impl $exec:expr, fn<$($param:expr),*;>($fn_id:expr),
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    (for ($base:expr) impl $exec:expr, fn<$($param:expr),*;>($fn_id:expr), $runtime_id:expr,
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    (for ($base:expr) impl $exec:expr, fn<$($param:expr),*;>($fn_id:expr), $runtime_id:expr,
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn($fn_id:expr),
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn($fn_id:expr),
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn($fn_id:expr), $runtime_id:expr,
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn($fn_id:expr), $runtime_id:expr,
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn<$($param:expr),*;>($fn_id:expr),
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn<$($param:expr),*;>($fn_id:expr),
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn<$($param:expr),*;>($fn_id:expr), $runtime_id:expr,
        fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
    ($exec:expr, fn<$($param:expr),*;>($fn_id:expr), $runtime_id:expr,
        const fn $name:ident<$(($t:ident = $T:ty),)* $(const ($n:ident = $N:expr): $nt:ty),*>($runtime:ident: $Runtime:ty, $($a:ident: $A:ty),*) -> $Ret:ty
        where $($t_:ty: $clause:tt),*; $body:tt
    ) => { ... };
}