Macro holochain::prelude::dependencies::kitsune_p2p_types::dependencies::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.