Macro interchange::interchange [−][src]
macro_rules! interchange { ($Name:ident: ($REQUEST:ty, $RESPONSE:ty)) => { ... }; ($Name:ident: ($REQUEST:ty, $RESPONSE:ty, $N:expr)) => { ... }; }
Use this macro to generate a pair of RPC pipes for any pair of Request/Response enums you wish to implement.
use interchange::Interchange as _; use interchange::interchange; #[derive(Clone, Debug, PartialEq)] pub enum Request { This(u8, u32), That(i64), } #[derive(Clone, Debug, PartialEq)] pub enum Response { Here(u8, u8, u8), There(i16), } interchange::interchange! { ExampleInterchange: (Request, Response) }
Note
The syntax to setup multiple copies of a given interchange (for instance,
we use this in trussed
for multi-client) is horrible. Please let the
authers know if there’s a better way, than the current
interchange!(Name: (Request, Response), 3, [None, None, None])
etc.