Struct edres::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
sourceimpl 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
sourceimpl Clone for EnumOptions
impl Clone for EnumOptions
sourcefn clone(&self) -> EnumOptions
fn clone(&self) -> EnumOptions
1.0.0 · sourceconst fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for EnumOptions
impl Debug for EnumOptions
sourceimpl Default for EnumOptions
impl Default for EnumOptions
sourcefn default() -> EnumOptions
fn default() -> EnumOptions
Examples
assert_eq!(EnumOptions::default(), EnumOptions::new());
sourceimpl PartialEq<EnumOptions> for EnumOptions
impl PartialEq<EnumOptions> for EnumOptions
sourcefn eq(&self, other: &EnumOptions) -> bool
fn eq(&self, other: &EnumOptions) -> bool
impl Eq for EnumOptions
impl StructuralEq for EnumOptions
impl StructuralPartialEq for EnumOptions
Auto Trait Implementations
impl RefUnwindSafe for EnumOptions
impl Send for EnumOptions
impl Sync for EnumOptions
impl Unpin for EnumOptions
impl UnwindSafe for EnumOptions
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.