[−][src]Macro susy_jsonrpc_macros::build_rpc_trait
macro_rules! build_rpc_trait { ( $(#[$t_attr: meta])* pub trait $name:ident $(<$( $generics:ident ),*> $( where $( $generics2:ident : $bounds:tt $( + $morebounds:tt )* ,)+ )* )* { $( $rest: tt )+ } ) => { ... }; ( @WITH_BOUNDS $(#[$t_attr: meta])* pub trait $name:ident $(< $( $simple_generics:ident ,)* @BOUNDS $( $generics:ident : $bounds:tt $( + $morebounds:tt )* ,)* >)* { $( $( #[doc=$m_doc:expr] )* #[ rpc( $($t:tt)* ) ] fn $m_name: ident ( $( $p: tt )* ) -> $result: tt <$out: ty $(, $error: ty)* >; )* } ) => { ... }; ( @WITH_BOUNDS $(#[$t_attr: meta])* pub trait $name: ident $(< $( $simple_generics:ident ,)* @BOUNDS $( $generics:ident : $bounds:tt $( + $morebounds:tt )* ,)* >)* { type Metadata; $( $( #[ doc=$m_doc:expr ] )* #[ rpc( $($t:tt)* ) ] fn $m_name: ident ( $( $p: tt )* ) -> $result: tt <$out: ty $(, $error_std: ty) *>; )* $( #[ pubsub( $($pubsub_t:tt)+ ) ] { $( #[ doc= $sub_doc:expr ] )* #[ rpc( $($sub_t:tt)* ) ] fn $sub_name: ident ( $($sub_p: tt)* ); $( #[ doc= $unsub_doc:expr ] )* #[ rpc( $($unsub_t:tt)* ) ] fn $unsub_name: ident ( $($unsub_p: tt)* ) -> $sub_result: tt <$sub_out: ty $(, $error_unsub: ty)* >; } )* } ) => { ... }; (GENERATE_FUNCTIONS $( $( #[doc=$m_doc:expr] )* fn $m_name: ident (&self $(, $p: ty)* ) $( -> $result: ty)*; )* ) => { ... }; ( WRAP $del: expr => (meta, name = $name: expr $(, alias = [ $( $alias: expr, )+ ])*) fn $method: ident (&self, Self::Metadata $(, $param: ty)*) -> $result: tt <$out: ty $(, $error: ty)* > ) => { ... }; ( WRAP $del: expr => pubsub: (name = $name: expr) subscribe: (name = $subscribe: expr $(, alias = [ $( $sub_alias: expr, )+ ])*) fn $sub_method: ident (&self, Self::Metadata $(, $sub_p: ty)+); unsubscribe: (name = $unsubscribe: expr $(, alias = [ $( $unsub_alias: expr, )+ ])*) fn $unsub_method: ident (&self, Option < Self::Metadata > $(, $unsub_p: ty)+) -> $result: tt <$out: ty $(, $error_unsub: ty)* >; ) => { ... }; ( WRAP $del: expr => (name = $name: expr $(, alias = [ $( $alias: expr, )+ ])*) fn $method: ident (&self $(, $param: ty)*) -> $result: tt <$out: ty $(, $error: ty)* > ) => { ... }; }
Build an RPC trait definition.