bevy_reflect

Trait TupleStruct

Source
pub trait TupleStruct: PartialReflect {
    // Required methods
    fn field(&self, index: usize) -> Option<&dyn PartialReflect>;
    fn field_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>;
    fn field_len(&self) -> usize;
    fn iter_fields(&self) -> TupleStructFieldIter<'_> ;
    fn clone_dynamic(&self) -> DynamicTupleStruct;

    // Provided method
    fn get_represented_tuple_struct_info(
        &self,
    ) -> Option<&'static TupleStructInfo> { ... }
}
Expand description

A trait used to power tuple struct-like operations via reflection.

This trait uses the Reflect trait to allow implementors to have their fields be dynamically addressed by index.

When using #[derive(Reflect)] on a tuple struct, this trait will be automatically implemented.

§Example

use bevy_reflect::{PartialReflect, Reflect, TupleStruct};

#[derive(Reflect)]
struct Foo(u32);

let foo = Foo(123);

assert_eq!(foo.field_len(), 1);

let field: &dyn PartialReflect = foo.field(0).unwrap();
assert_eq!(field.try_downcast_ref::<u32>(), Some(&123));

Required Methods§

Source

fn field(&self, index: usize) -> Option<&dyn PartialReflect>

Returns a reference to the value of the field with index index as a &dyn Reflect.

Source

fn field_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>

Returns a mutable reference to the value of the field with index index as a &mut dyn Reflect.

Source

fn field_len(&self) -> usize

Returns the number of fields in the tuple struct.

Source

fn iter_fields(&self) -> TupleStructFieldIter<'_>

Returns an iterator over the values of the tuple struct’s fields.

Source

fn clone_dynamic(&self) -> DynamicTupleStruct

Clones the struct into a DynamicTupleStruct.

Provided Methods§

Source

fn get_represented_tuple_struct_info(&self) -> Option<&'static TupleStructInfo>

Will return None if TypeInfo is not available.

Trait Implementations§

Source§

impl GetTupleStructField for dyn TupleStruct

Source§

fn get_field<T: Reflect>(&self, index: usize) -> Option<&T>

Returns a reference to the value of the field with index index, downcast to T.
Source§

fn get_field_mut<T: Reflect>(&mut self, index: usize) -> Option<&mut T>

Returns a mutable reference to the value of the field with index index, downcast to T.

Implementors§