[−][src]Macro edisp::implement_dispatch
macro_rules! implement_dispatch { ($_:ident $( < $( $__:tt ),+ $( , )? > )? $( , )? ) => { ... }; ($_:ident $( < $( $__:tt),+ $( , )? > )?, $___: ident ($____: ty) $( , )? ) => { ... }; ($enum_name:ident $( < $( $ty_arg:tt ),+ $( , )? > )?, $variant1_name: ident ($variant1_it: ty), $variant2_name: ident ($variant2_it: ty) $( , )? ) => { ... }; ($enum_name:ident $( < $( $ty_arg:tt ),+ $( , )? > )?, $variant1_name: ident ($variant1_it: ty), $variant2_name: ident ($variant2_it: ty), $variant3_name: ident ($variant3_it: ty) $( , )? ) => { ... }; ($enum_name:ident $( < $( $ty_arg:tt ),+ $( , )? > )?, $variant1_name: ident ($variant1_it: ty), $variant2_name: ident ($variant2_it: ty), $variant3_name: ident ($variant3_it: ty), $variant4_name: ident ($variant4_it: ty) $( , )? ) => { ... }; ($enum_name:ident $( < $( $ty_arg:tt ),+ $( , )? > )?, $variant1_name: ident ($variant1_it: ty), $variant2_name: ident ($variant2_it: ty), $variant3_name: ident ($variant3_it: ty), $variant4_name: ident ($variant4_it: ty), $variant5_name: ident ($variant5_it: ty) $( , )? ) => { ... }; ($enum_name:ident $( < $( $ty_arg:tt ),+ $( , )? > )?, $variant1_name: ident ($variant1_it: ty), $variant2_name: ident ($variant2_it: ty), $variant3_name: ident ($variant3_it: ty), $variant4_name: ident ($variant4_it: ty), $variant5_name: ident ($variant5_it: ty), $variant6_name: ident ($variant6_it: ty) $( , )? ) => { ... }; ($enum_name:ident $( < $( $ty_arg:tt ),+ $( , )? > )?, $variant1_name: ident ($variant1_it: ty), $variant2_name: ident ($variant2_it: ty), $variant3_name: ident ($variant3_it: ty), $variant4_name: ident ($variant4_it: ty), $variant5_name: ident ($variant5_it: ty), $variant6_name: ident ($variant6_it: ty), $variant7_name: ident ($variant7_it: ty) $( , )? ) => { ... }; ($enum_name:ident $( < $( $ty_arg:tt ),+ $( , )? > )?, $variant1_name: ident ($variant1_it: ty), $variant2_name: ident ($variant2_it: ty), $variant3_name: ident ($variant3_it: ty), $variant4_name: ident ($variant4_it: ty), $variant5_name: ident ($variant5_it: ty), $variant6_name: ident ($variant6_it: ty), $variant7_name: ident ($variant7_it: ty), $variant8_name: ident ($variant8_it: ty) $( , )? ) => { ... }; }
Implements the dispatch for an enum.
use edisp::prelude::*; enum MyResult<T, E> { MyOk(T), MyErr(E) } implement_dispatch!(MyResult<T, E>, MyOk(T), MyErr(E)); enum MyEnum { Integer(u8), Other(char), } implement_dispatch!(MyEnum, Integer(u8), Other(char));