EveryVariant

Trait EveryVariant 

Source
pub trait EveryVariant: Sized {
    // Required method
    fn every_variant() -> Vec<Self>;

    // Provided method
    fn for_every_variant<F: Fn(&Self)>(closure: F) { ... }
}
Expand description

Trait that supplies a function to generate a vector containing all possible variants in a tree

Required Methods§

Source

fn every_variant() -> Vec<Self>

A vector of variants that should contain every possible variant of the struct or enum

Provided Methods§

Source

fn for_every_variant<F: Fn(&Self)>(closure: F)

Helper function, loops of each variant in an enum. Else does nothing.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl EveryVariant for &'static str

Source§

impl EveryVariant for bool

Source§

impl EveryVariant for f32

Source§

impl EveryVariant for f64

Source§

impl EveryVariant for i8

Source§

impl EveryVariant for i16

Source§

impl EveryVariant for i32

Source§

impl EveryVariant for i64

Source§

impl EveryVariant for i128

Source§

impl EveryVariant for u8

Source§

impl EveryVariant for u16

Source§

impl EveryVariant for u32

Source§

impl EveryVariant for u64

Source§

impl EveryVariant for u128

Source§

impl EveryVariant for ()

Source§

impl EveryVariant for usize

Source§

impl EveryVariant for String

Source§

impl EveryVariant for NonZeroI8

Source§

impl EveryVariant for NonZeroI16

Source§

impl EveryVariant for NonZeroI32

Source§

impl EveryVariant for NonZeroI64

Source§

impl EveryVariant for NonZeroI128

Source§

impl EveryVariant for NonZeroU8

Source§

impl EveryVariant for NonZeroU16

Source§

impl EveryVariant for NonZeroU32

Source§

impl EveryVariant for NonZeroU64

Source§

impl EveryVariant for NonZeroU128

Source§

impl<T: EveryVariant + Clone + Sized> EveryVariant for Option<T>

Source§

impl<T: EveryVariant + Clone + Sized> EveryVariant for Vec<T>

Source§

impl<T: EveryVariant + Clone + Sized, E: EveryVariant + Clone + Sized> EveryVariant for Result<T, E>

Implementors§