Derive Macro strum::VariantArray

source ·
#[derive(VariantArray)]
{
    // Attributes available to this derive:
    #[strum]
}
Available on crate feature derive only.
Expand description

Adds a 'static slice with all of the Enum’s variants.

Implements strum::VariantArray which adds an associated constant VARIANTS. This constant contains an array with all the variants of the enumerator.

This trait can only be autoderived if the enumerator is composed only of unit-type variants, meaning that the variants must not have any data.

use strum::VariantArray;

#[derive(VariantArray, Debug, PartialEq, Eq)]
enum Op {
    Add,
    Sub,
    Mul,
    Div,
}

assert_eq!(Op::VARIANTS, &[Op::Add, Op::Sub, Op::Mul, Op::Div]);