pub struct EnumConfig {Show 19 fields
pub rename_variants: RenameRule,
pub rename_variant_name_fields: RenameRule,
pub add_sentinel: bool,
pub prefix_with_name: bool,
pub derive_helper_methods: bool,
pub derive_const_casts: bool,
pub derive_mut_casts: bool,
pub cast_assert_name: Option<String>,
pub must_use: Option<String>,
pub deprecated: Option<String>,
pub deprecated_with_note: Option<String>,
pub deprecated_variant: Option<String>,
pub deprecated_variant_with_note: Option<String>,
pub derive_tagged_enum_destructor: bool,
pub derive_tagged_enum_copy_constructor: bool,
pub derive_tagged_enum_copy_assignment: bool,
pub derive_ostream: bool,
pub enum_class: bool,
pub private_default_tagged_enum_constructor: bool,
}
Expand description
Settings to apply to generated enums.
Fields§
§rename_variants: RenameRule
The rename rule to apply to the name of enum variants
rename_variant_name_fields: RenameRule
The rename rule to apply to the names of the union fields in C/C++ generated from the Rust enum. Applied before rename_variants rename rule. Defaults to SnakeCase.
add_sentinel: bool
Whether to add a Sentinel
value at the end of every enum
This is useful in Gecko for IPC serialization
prefix_with_name: bool
Whether the enum variants should be prefixed with the enum name
derive_helper_methods: bool
Whether to generate static ::X(..)
constructors and IsX()
methods for tagged enums.
derive_const_casts: bool
Whether to generate AsX() const
methods for tagged enums.
derive_mut_casts: bool
Whether to generate AsX()
methods for tagged enums.
cast_assert_name: Option<String>
The name of the macro to use for derive_{const,mut}casts
. If custom, you’re
responsible to provide the necessary header, otherwise assert
will be
used, and <cassert>
will be included.
must_use: Option<String>
The way to annotation this enum as #[must_use].
deprecated: Option<String>
The way to annotation this function as #[deprecated] without notes
deprecated_with_note: Option<String>
The way to annotation this function as #[deprecated] with notes
deprecated_variant: Option<String>
The way to annotate this enum variant as #[deprecated] without notes
deprecated_variant_with_note: Option<String>
The way to annotate this enum variant as #[deprecated] with notes
derive_tagged_enum_destructor: bool
Whether to generate destructors of tagged enums.
derive_tagged_enum_copy_constructor: bool
Whether to generate copy-constructors of tagged enums.
derive_tagged_enum_copy_assignment: bool
Whether to generate copy-assignment operators of tagged enums.
This is only generated if a copy constructor for the same tagged enum is generated as well.
derive_ostream: bool
Whether to generate a ostream serializer for the struct
enum_class: bool
Declare the enum as an enum class. Only relevant when targeting C++.
private_default_tagged_enum_constructor: bool
Whether to generate empty, private default-constructors for tagged enums.
Trait Implementations§
Source§impl Clone for EnumConfig
impl Clone for EnumConfig
Source§fn clone(&self) -> EnumConfig
fn clone(&self) -> EnumConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more