Trait TupleStruct

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

A reflected Rust tuple struct.

Implementors of this trait allow their tuple fields to be addressed by index.

This trait is automatically implemented for tuple struct types when using #[derive(Reflect)].

use bevy_reflect::{Reflect, TupleStruct};

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

let foo = Foo("Hello, world!".to_string());

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

let first = foo.field(0).unwrap();
assert_eq!(first.downcast_ref::<String>(), Some(&"Hello, world!".to_string()));

Required Methods§

Source

fn field(&self, index: usize) -> Option<&(dyn Reflect + 'static)>

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 Reflect + 'static)>

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.

Trait Implementations§

Source§

impl GetTupleStructField for dyn TupleStruct

Source§

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

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

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

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

Implementors§