Derive Macro enumcapsulate_macros::VariantDiscriminant
source · #[derive(VariantDiscriminant)]Expand description
Derive macro generating an impl of the trait VariantDiscriminant.
ⓘ
struct Inner;
enum Outer {
Inner(Inner),
// ...
}
// The generated discriminant type looks something along these lines:
#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
pub enum OuterDiscriminant {
Inner,
// ...
}
// The generated impl looks something along these lines:
impl VariantDiscriminant for Outer {
type Discriminant = OuterDiscriminant;
fn variant_discriminant(&self) -> Self::Discriminant {
match self {
Outer::Inner(_) => OuterDiscriminant::Inner,
// ...
}
}
}