Skip to main content

EnumOptions

Struct EnumOptions 

Source
pub struct EnumOptions {
    pub derived_traits: Cow<'static, [Cow<'static, str>]>,
    pub impl_default: bool,
    pub impl_display: bool,
    pub impl_from_str: bool,
    pub all_variants_const_name: Option<Cow<'static, str>>,
    pub all_values_const_name: Option<Cow<'static, str>>,
    pub values_struct: Option<ValuesStructOptions>,
    pub get_value_fn_name: Option<Cow<'static, str>>,
}
Expand description

Options specific to how edres should generate enums.

Fields§

§derived_traits: Cow<'static, [Cow<'static, str>]>

A list of traits to derive.

These can either be unqualified (like Clone) or qualifier with a crate name (like serde::Serialize).

See the EnumOptions::new example to see how to easily set this value.

§impl_default: bool

Whether generated enums should implement the Default trait.

This uses the first variant as the default value.

§impl_display: bool

Whether generated enums should implement Display.

This just displays the name of the variant as a string. For example, MyEnum::First.to_string() == "First".

§impl_from_str: bool

Whether generated enums should implement FromStr.

This works by matching the name of the variant. For example, "First".parse().unwrap() == MyEnum::First.

§all_variants_const_name: Option<Cow<'static, str>>

If present, generates a const with this name that stores a slice of all variants of the generated enum.

§all_values_const_name: Option<Cow<'static, str>>

If present, generates a const with this name that stores a slice of all values corresponding to the enum variants.

This requires values_struct to be set as well.

§values_struct: Option<ValuesStructOptions>

If present, structs representing the values associated with enum variants will also be generated.

The ValuesStructOptions defines further options for how they are generated.

§get_value_fn_name: Option<Cow<'static, str>>

If present, generates a method with this name for fetching the value associated with an enum variant.

Implementations§

Source§

impl EnumOptions

Source

pub const fn new() -> EnumOptions

§Examples
assert_eq!(EnumOptions::new(), EnumOptions {
    derived_traits: vec![
        "Debug".into(),
        "Clone".into(),
        "Copy".into(),
        "PartialEq".into(),
        "Eq".into(),
        "Hash".into(),
    ].into(),
    impl_default: true,
    impl_display: true,
    impl_from_str: true,
    all_variants_const_name: Some("ALL".into()),
    all_values_const_name: Some("VALUES".into()),
    values_struct: Some(ValuesStructOptions::new()),
    get_value_fn_name: Some("get".into()),
});
Source

pub const fn minimal() -> EnumOptions

§Examples
assert_eq!(EnumOptions::minimal(), EnumOptions {
    derived_traits: vec![].into(),
    impl_default: false,
    impl_display: false,
    impl_from_str: false,
    all_variants_const_name: None,
    all_values_const_name: None,
    values_struct: None,
    get_value_fn_name: None,
});

Trait Implementations§

Source§

impl Clone for EnumOptions

Source§

fn clone(&self) -> EnumOptions

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EnumOptions

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for EnumOptions

Source§

fn default() -> EnumOptions

§Examples
assert_eq!(EnumOptions::default(), EnumOptions::new());
Source§

impl Eq for EnumOptions

Source§

impl PartialEq for EnumOptions

Source§

fn eq(&self, other: &EnumOptions) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for EnumOptions

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.