macro_rules! sqlfunc {
(fn $fn_name : ident $($tail : tt) *) => { ... };
(#[sqlname = $name : expr] fn $fn_name : ident $($tail : tt) *) => { ... };
(#[sqlname = $name : expr]
#[preserves_uniqueness = $preserves_uniqueness : expr] fn $fn_name :
ident($($params : tt) *) $($tail : tt) *) => { ... };
(#[sqlname = $name : expr]
#[preserves_uniqueness = $preserves_uniqueness : expr] fn $fn_name : ident <
$lt : lifetime > (mut $param_name : ident : $input_ty : ty) -> $output_ty :
ty $body : block) => { ... };
(#[sqlname = $name : expr]
#[preserves_uniqueness = $preserves_uniqueness : expr] fn $fn_name : ident <
$lt : lifetime > ($param_name : ident : $input_ty : ty) -> $output_ty : ty
$body : block) => { ... };
}