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: boolWhether generated enums should implement the Default
trait.
This uses the first variant as the default value.
impl_display: boolWhether 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: boolWhether 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
impl EnumOptions
Sourcepub const fn new() -> EnumOptions
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()),
});Sourcepub const fn minimal() -> EnumOptions
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
impl Clone for EnumOptions
Source§fn clone(&self) -> EnumOptions
fn clone(&self) -> EnumOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EnumOptions
impl Debug for EnumOptions
Source§impl Default for EnumOptions
impl Default for EnumOptions
Source§fn default() -> EnumOptions
fn default() -> EnumOptions
§Examples
assert_eq!(EnumOptions::default(), EnumOptions::new());Source§impl PartialEq for EnumOptions
impl PartialEq for EnumOptions
impl Eq for EnumOptions
impl StructuralPartialEq for EnumOptions
Auto Trait Implementations§
impl Freeze for EnumOptions
impl RefUnwindSafe for EnumOptions
impl Send for EnumOptions
impl Sync for EnumOptions
impl Unpin for EnumOptions
impl UnwindSafe for EnumOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.