Skip to main content

define_either

Macro define_either 

Source
macro_rules! define_either {
    (
            $(#[$enum_meta:meta])*
            $vis:vis enum $name:ident<$l:ident, $r:ident = $default_r:ident> {
                $(#[$left_meta:meta])* $left:ident,
                $(#[$right_meta:meta])* $right:ident$(,)?
            }
        ) => { ... };
}
Expand description

Macro to define an Either enum with exactly two variants: Left, Right.

 use cba::define_either;

 define_either! {
     #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
     #[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
     pub enum Either<L, R = L> {
         Left,
         Right
     }
 }