pub enum Variant<'a> {
Static(&'static VariantDef<'static>),
Dynamic(VariantDef<'a>),
}Expand description
An enum variant
Returned by Enumerable::variant(), Variant represents a single enum
variant.
Variants§
Static(&'static VariantDef<'static>)
The variant is statically defined by the associated enum.
Dynamic(VariantDef<'a>)
The variant is dynamically defined and not included as part of
Enumerable::definition().
Implementations§
Source§impl Variant<'_>
impl Variant<'_>
Sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
Returns the variant’s name
§Examples
use valuable::{Fields, Variant, VariantDef};
static VARIANT: &VariantDef<'static> = &VariantDef::new(
"Foo", Fields::Unnamed(2));
let variant = Variant::Static(VARIANT);
assert_eq!("Foo", variant.name());Sourcepub fn is_named_fields(&self) -> bool
pub fn is_named_fields(&self) -> bool
Returns true if the variant has associated named fields.
§Examples
With named fields
use valuable::{Fields, NamedField, Variant, VariantDef};
static VARIANT: &VariantDef<'static> = &VariantDef::new(
"Foo", Fields::Named(&[NamedField::new("hello")]));
let variant = Variant::Static(VARIANT);
assert!(variant.is_named_fields());With unnamed fields
use valuable::{Fields, Variant, VariantDef};
static VARIANT: &VariantDef<'static> = &VariantDef::new(
"Foo", Fields::Unnamed(1));
let variant = Variant::Static(VARIANT);
assert!(!variant.is_named_fields());Sourcepub fn is_unnamed_fields(&self) -> bool
pub fn is_unnamed_fields(&self) -> bool
Returns true if the variant has associated unnamed fields.
§Examples
With named fields
use valuable::{Fields, NamedField, Variant, VariantDef};
static VARIANT: &VariantDef<'static> = &VariantDef::new(
"Foo", Fields::Named(&[NamedField::new("hello")]));
let variant = Variant::Static(VARIANT);
assert!(!variant.is_unnamed_fields());With unnamed fields
use valuable::{Fields, Variant, VariantDef};
static VARIANT: &VariantDef<'static> = &VariantDef::new(
"Foo", Fields::Unnamed(1));
let variant = Variant::Static(VARIANT);
assert!(variant.is_unnamed_fields());