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 enum
- variant_name: The name of the variant to set
- variant: 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 enum
- variant_index: The index of the variant to set
- variant_name: The name of the variant to set
- variant: 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.§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.§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.§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.source§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 reflect_path<'r, 'p>(
    &'r self,
    path: &'p str
) -> Result<&'r (dyn Reflect + 'static), ReflectPathError<'p>>
 
fn reflect_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 reflect_path_mut<'r, 'p>(
    &'r mut self,
    path: &'p str
) -> Result<&'r mut (dyn Reflect + 'static), ReflectPathError<'p>>
 
fn reflect_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 more