macro_rules! upgradable_api {
(
$(#[$mod_attr:meta])*
mod $mod_name:ident {
impl $api_type:ident {
$(
$(#[doc = $doc_attr:tt])*
$(#[ink($ink_attr:tt)])*
$fn_vis:vis fn $fn_name:ident(
& $self:ident
$(,)?
$($param:ident: $ty:ty),*
$(,)?
) -> $fn_return:ty {
$( $fn_impl:tt )*
}
)*
}
$(
impl $api_type2:ident {
$(
$(#[doc = $doc2_attr:tt])*
$fn2_vis:vis fn $fn2_name:ident(
$(& $self2:ident)?
$(,)?
$($param2:ident: $ty2:ty),*
$(,)?
) -> $fn2_return:ty {
$( $fn2_impl:tt )*
}
)*
}
)?
}
) => { ... };
(@impl_api_func
$(#[doc = $doc_attr:tt])*
$(#[ink($ink_attr:tt)])+
$fn_vis:vis fn $fn_name:ident(
& $self:ident
$(,)?
$($param:ident: $ty:ty),*
$(,)?
) -> $fn_return:ty {
$( $fn_impl:tt )*
}
) => { ... };
(@impl_api_func
$(#[doc = $doc_attr:tt])*
$fn_vis:vis fn $fn_name:ident(
$(& $self:ident)?
$(,)?
$($param:ident: $ty:ty),*
$(,)?
) -> $fn_return:ty {
$( $fn_impl:tt )*
}
) => { ... };
}