Struct bevy_internal::reflect::DynamicEnum
source · pub struct DynamicEnum { /* private fields */ }Expand description
A dynamic representation of an enum.
This allows for enums to be configured at runtime.
Example
// The original enum value
let mut value: Option<usize> = Some(123);
// Create a DynamicEnum to represent the new value
let mut dyn_enum = DynamicEnum::new(
Reflect::type_name(&value),
"None",
DynamicVariant::Unit
);
// Apply the DynamicEnum as a patch to the original value
value.apply(&dyn_enum);
// Tada!
assert_eq!(None, value);Implementations§
source§impl DynamicEnum
impl DynamicEnum
sourcepub fn new<I, V>(name: I, variant_name: I, variant: V) -> DynamicEnumwhere
I: Into<String>,
V: Into<DynamicVariant>,
pub fn new<I, V>(name: I, variant_name: I, variant: V) -> DynamicEnumwhere
I: Into<String>,
V: Into<DynamicVariant>,
Create a new DynamicEnum to represent an enum at runtime.
Arguments
name: The type name of the enumvariant_name: The name of the variant to setvariant: The variant data
sourcepub fn new_with_index<I, V>(
name: I,
variant_index: usize,
variant_name: I,
variant: V
) -> DynamicEnumwhere
I: Into<String>,
V: Into<DynamicVariant>,
pub fn new_with_index<I, V>(
name: I,
variant_index: usize,
variant_name: I,
variant: V
) -> DynamicEnumwhere
I: Into<String>,
V: Into<DynamicVariant>,
Create a new DynamicEnum with a variant index to represent an enum at runtime.
Arguments
name: The type name of the enumvariant_index: The index of the variant to setvariant_name: The name of the variant to setvariant: The variant data
sourcepub fn set_variant<I, V>(&mut self, name: I, variant: V)where
I: Into<String>,
V: Into<DynamicVariant>,
pub fn set_variant<I, V>(&mut self, name: I, variant: V)where
I: Into<String>,
V: Into<DynamicVariant>,
Set the current enum variant represented by this struct.
sourcepub fn set_variant_with_index<I, V>(
&mut self,
variant_index: usize,
name: I,
variant: V
)where
I: Into<String>,
V: Into<DynamicVariant>,
pub fn set_variant_with_index<I, V>(
&mut self,
variant_index: usize,
name: I,
variant: V
)where
I: Into<String>,
V: Into<DynamicVariant>,
Set the current enum variant represented by this struct along with its variant index.
sourcepub fn from<TEnum>(value: TEnum) -> DynamicEnumwhere
TEnum: Enum,
pub fn from<TEnum>(value: TEnum) -> DynamicEnumwhere
TEnum: Enum,
Create a DynamicEnum from an existing one.
This is functionally the same as DynamicEnum::from_ref except it takes an owned value.
sourcepub fn from_ref<TEnum>(value: &TEnum) -> DynamicEnumwhere
TEnum: Enum,
pub fn from_ref<TEnum>(value: &TEnum) -> DynamicEnumwhere
TEnum: Enum,
Create a DynamicEnum from an existing one.
This is functionally the same as DynamicEnum::from except it takes a reference.
Trait Implementations§
source§impl Debug for DynamicEnum
impl Debug for DynamicEnum
source§impl Default for DynamicEnum
impl Default for DynamicEnum
source§fn default() -> DynamicEnum
fn default() -> DynamicEnum
Returns the “default value” for a type. Read more
source§impl Enum for DynamicEnum
impl Enum for DynamicEnum
source§fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>
Returns a reference to the value of the field (in the current variant) with the given name. Read more
source§fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>
Returns a reference to the value of the field (in the current variant) at the given index.
source§fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>
Returns a mutable reference to the value of the field (in the current variant) with the given name. Read more
source§fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
fn field_at_mut(&mut self, index: usize) -> Option<&mut (dyn Reflect + 'static)>
Returns a mutable reference to the value of the field (in the current variant) at the given index.
source§fn index_of(&self, name: &str) -> Option<usize>
fn index_of(&self, name: &str) -> Option<usize>
Returns the index of the field (in the current variant) with the given name. Read more
source§fn name_at(&self, index: usize) -> Option<&str>
fn name_at(&self, index: usize) -> Option<&str>
Returns the name of the field (in the current variant) with the given index. Read more
source§fn iter_fields(&self) -> VariantFieldIter<'_> ⓘ
fn iter_fields(&self) -> VariantFieldIter<'_> ⓘ
Returns an iterator over the values of the current variant’s fields.
source§fn variant_name(&self) -> &str
fn variant_name(&self) -> &str
The name of the current variant.
source§fn variant_index(&self) -> usize
fn variant_index(&self) -> usize
The index of the current variant.
source§fn variant_type(&self) -> VariantType
fn variant_type(&self) -> VariantType
The type of the current variant.
fn clone_dynamic(&self) -> DynamicEnum
source§fn is_variant(&self, variant_type: VariantType) -> bool
fn is_variant(&self, variant_type: VariantType) -> bool
Returns true if the current variant’s type matches the given one.
source§fn variant_path(&self) -> String
fn variant_path(&self) -> String
Returns the full path to the current variant.
source§impl Reflect for DynamicEnum
impl Reflect for DynamicEnum
source§fn get_type_info(&self) -> &'static TypeInfo
fn get_type_info(&self) -> &'static TypeInfo
source§fn into_any(self: Box<DynamicEnum, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<DynamicEnum, Global>) -> Box<dyn Any + 'static, Global>
Returns the value as a
Box<dyn Any>.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Returns the value as a
&mut dyn Any.source§fn into_reflect(
self: Box<DynamicEnum, Global>
) -> Box<dyn Reflect + 'static, Global>
fn into_reflect(
self: Box<DynamicEnum, Global>
) -> Box<dyn Reflect + 'static, Global>
Casts this type to a boxed reflected value.
source§fn as_reflect(&self) -> &(dyn Reflect + 'static)
fn as_reflect(&self) -> &(dyn Reflect + 'static)
Casts this type to a reflected value.
source§fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)
Casts this type to a mutable reflected value.
source§fn apply(&mut self, value: &(dyn Reflect + 'static))
fn apply(&mut self, value: &(dyn Reflect + 'static))
Applies a reflected value to this value. Read more
source§fn set(
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
fn set(
&mut self,
value: Box<dyn Reflect + 'static, Global>
) -> Result<(), Box<dyn Reflect + 'static, Global>>
Performs a type-checked assignment of a reflected value to this value. Read more
source§fn reflect_ref(&self) -> ReflectRef<'_>
fn reflect_ref(&self) -> ReflectRef<'_>
Returns an enumeration of “kinds” of type. Read more
source§fn reflect_mut(&mut self) -> ReflectMut<'_>
fn reflect_mut(&mut self) -> ReflectMut<'_>
Returns a mutable enumeration of “kinds” of type. Read more
source§fn reflect_owned(self: Box<DynamicEnum, Global>) -> ReflectOwned
fn reflect_owned(self: Box<DynamicEnum, Global>) -> ReflectOwned
Returns an owned enumeration of “kinds” of type. Read more
source§fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>
fn clone_value(&self) -> Box<dyn Reflect + 'static, Global>
Clones the value as a
Reflect trait object. Read moresource§fn reflect_hash(&self) -> Option<u64>
fn reflect_hash(&self) -> Option<u64>
Returns a hash of the value (which includes the type). Read more
source§fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
fn reflect_partial_eq(&self, value: &(dyn Reflect + 'static)) -> Option<bool>
Returns a “partial equality” comparison result. Read more
source§fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
fn debug(&self, f: &mut Formatter<'_>) -> Result<(), Error>
Debug formatter for the value. Read more
source§fn serializable(&self) -> Option<Serializable<'_>>
fn serializable(&self) -> Option<Serializable<'_>>
Returns a serializable version of the value. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for DynamicEnum
impl Send for DynamicEnum
impl Sync for DynamicEnum
impl Unpin for DynamicEnum
impl !UnwindSafe for DynamicEnum
Blanket Implementations§
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read more§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read moresource§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates
Self using data from the given Worldsource§impl<T> GetPath for Twhere
T: Reflect,
impl<T> GetPath for Twhere
T: Reflect,
source§fn path<'r, 'p>(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
fn path<'r, 'p>(
&'r self,
path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
Returns a reference to the value specified by
path. Read moresource§fn path_mut<'r, 'p>(
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
fn path_mut<'r, 'p>(
&'r mut self,
path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
Returns a mutable reference to the value specified by
path. Read moresource§fn get_path<T, 'r, 'p>(
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>>where
T: Reflect,
fn get_path<T, 'r, 'p>(
&'r self,
path: &'p str
) -> Result<&'r T, ReflectPathError<'p>>where
T: Reflect,
Returns a statically typed reference to the value specified by
path.source§fn get_path_mut<T, 'r, 'p>(
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>>where
T: Reflect,
fn get_path_mut<T, 'r, 'p>(
&'r mut self,
path: &'p str
) -> Result<&'r mut T, ReflectPathError<'p>>where
T: Reflect,
Returns a statically typed mutable reference to the value specified by
path. Read more