Macro polymesh_ink::upgradable_api

source ยท
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 )*
        }
    ) => { ... };
}