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
}
}