macro_rules! benchmark_backend {
($name:ident {
$( $common:tt )*
} {
$( PRE { $( $pre_parsed:tt )* } )*
} { $eval:expr } {
let $pre_id:tt : $pre_ty:ty = $pre_ex:expr;
$( $rest:tt )*
} ) => { ... };
($name:ident {
$( $common:tt )*
} {
$( $parsed:tt )*
} { $eval:expr } {
let $param:ident in ( $param_from:expr ) .. $param_to:expr => $param_instancer:expr;
$( $rest:tt )*
}) => { ... };
($name:ident {
$( { $common:ident , $common_from:tt , $common_to:expr , $common_instancer:expr } )*
} {
$( $parsed:tt )*
} { $eval:expr } {
let $param:ident in ...;
$( $rest:tt )*
}) => { ... };
($name:ident {
$( { $common:ident , $common_from:tt , $common_to:expr , $common_instancer:expr } )*
} {
$( $parsed:tt )*
} { $eval:expr } {
let $param:ident in _ .. _ => $param_instancer:expr ;
$( $rest:tt )*
}) => { ... };
($name:ident {
$( $common:tt )*
} {
$( $parsed:tt )*
} { $eval:expr } {
let $param:ident in $param_from:tt .. $param_to:expr => $param_instancer:expr ;
$( $rest:tt )*
}) => { ... };
($name:ident {
$( $common:tt )*
} {
$( $parsed:tt )*
} { $eval:expr } {
let $param:ident in $param_from:tt .. $param_to:expr;
$( $rest:tt )*
}) => { ... };
($name:ident {
$( $common:tt )*
} {
$( $parsed:tt )*
} { $eval:expr } {
let $pre_id:tt = $pre_ex:expr;
$( $rest:tt )*
}) => { ... };
($name:ident {
$( { $common:ident , $common_from:tt , $common_to:expr , $common_instancer:expr } )*
} {
$( PRE { $pre_id:tt , $pre_ty:ty , $pre_ex:expr } )*
$( PARAM { $param:ident , $param_from:expr , $param_to:expr , $param_instancer:expr } )*
} { $eval:expr } { $( $post:tt )* } ) => { ... };
}