Macro ghost_actor::ghost_chan
source · macro_rules! ghost_chan { ( @inner_tx $(#[$ameta:meta])* ($($avis:tt)*) chan $aname:ident<$aerr:ty> { $( $(#[$rmeta:meta])* fn $rname:ident ( $($pname:ident: $pty:ty),* $(,)? ) -> $rret:ty; )* } ) => { ... }; ( @inner ($($ameta:meta)*) ($($avis:tt)*) $aname:ident $aerr:ty [$( ($($rmeta:meta)*) $rname:ident $rnamec:ident $rret:ty [$( $pname:ident $pty:ty )*] )*] ) => { ... }; ( @inner_protocol ($($ameta:meta)*) ($($avis:tt)*) $aname:ident $aerr:ty [$( ($($rmeta:meta)*) $rname:ident $rnamec:ident $rret:ty [$( $pname:ident $pty:ty )*] )*] ) => { ... }; ( @inner_send_trait ($($ameta:meta)*) ($($avis:tt)*) $aname:ident $aerr:ty [$( ($($rmeta:meta)*) $rname:ident $rnamec:ident $rret:ty [$( $pname:ident $pty:ty )*] )*] ) => { ... }; ( @inner_handler_trait ($($ameta:meta)*) ($($avis:tt)*) $aname:ident $aerr:ty [$( ($($rmeta:meta)*) $rname:ident $rnamec:ident $rret:ty [$( $pname:ident $pty:ty )*] )*] ) => { ... }; ( $(#[$ameta:meta])* pub ( $($avis:tt)* ) chan $($rest:tt)* ) => { ... }; ( $(#[$ameta:meta])* pub chan $($rest:tt)* ) => { ... }; ( $(#[$ameta:meta])* chan $($rest:tt)* ) => { ... }; }
Expand description
The ghost_chan!
macro generates an enum and helper types that make it
easy to make inline async requests and await responses.