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§
Sourcefn field(&self, index: usize) -> Option<&dyn PartialReflect>
fn field(&self, index: usize) -> Option<&dyn PartialReflect>
Returns a reference to the value of the field with index index
as a
&dyn Reflect
.
Sourcefn field_mut(&mut self, index: usize) -> Option<&mut dyn PartialReflect>
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
.
Sourcefn iter_fields(&self) -> TupleStructFieldIter<'_> ⓘ
fn iter_fields(&self) -> TupleStructFieldIter<'_> ⓘ
Returns an iterator over the values of the tuple struct’s fields.
Sourcefn clone_dynamic(&self) -> DynamicTupleStruct
fn clone_dynamic(&self) -> DynamicTupleStruct
Clones the struct into a DynamicTupleStruct
.
Provided Methods§
Sourcefn get_represented_tuple_struct_info(&self) -> Option<&'static TupleStructInfo>
fn get_represented_tuple_struct_info(&self) -> Option<&'static TupleStructInfo>
Will return None
if TypeInfo
is not available.