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 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::{Reflect, TupleStruct};

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

let foo = Foo(123);

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

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

Required Methods§

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.

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.

fn field_len(&self) -> usize

Returns the number of fields in the tuple struct.

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

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

fn clone_dynamic(&self) -> DynamicTupleStruct

Clones the struct into a DynamicTupleStruct.

Trait Implementations§

§

impl GetTupleStructField for dyn TupleStruct

§

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.
§

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§

§

impl TupleStruct for SpatialScalewhere Vec3: FromReflect + TypePath,

§

impl TupleStruct for VolumeLevelwhere f32: FromReflect + TypePath,

§

impl TupleStruct for ClearColorwhere Color: FromReflect + TypePath,

§

impl TupleStruct for DenoiseCASwhere bool: FromReflect + TypePath,

§

impl TupleStruct for Camera3dDepthTextureUsagewhere u32: FromReflect + TypePath,

§

impl TupleStruct for Childrenwhere SmallVec<[Entity; 8]>: FromReflect + TypePath,

§

impl TupleStruct for Parentwhere Entity: FromReflect + TypePath,

§

impl TupleStruct for ScanCodewhere u32: FromReflect + TypePath,

§

impl TupleStruct for TouchpadMagnifywhere f32: FromReflect + TypePath,

§

impl TupleStruct for TouchpadRotatewhere f32: FromReflect + TypePath,

§

impl TupleStruct for DefaultOpaqueRendererMethodwhere OpaqueRendererMethod: FromReflect + TypePath,

§

impl TupleStruct for CameraRenderGraphwhere Cow<'static, str>: FromReflect + TypePath,

§

impl TupleStruct for ManualTextureViewHandlewhere u32: FromReflect + TypePath,

§

impl TupleStruct for InheritedVisibilitywhere bool: FromReflect + TypePath,

§

impl TupleStruct for RenderLayerswhere u32: FromReflect + TypePath,

§

impl TupleStruct for ViewVisibilitywhere bool: FromReflect + TypePath,

§

impl TupleStruct for Mesh2dHandlewhere Handle<Mesh>: FromReflect + TypePath,

§

impl TupleStruct for GlobalTransformwhere Affine3A: FromReflect + TypePath,

§

impl TupleStruct for BackgroundColorwhere Color: FromReflect + TypePath,

§

impl TupleStruct for BorderColorwhere Color: FromReflect + TypePath,

§

impl TupleStruct for UiScalewhere f64: FromReflect + TypePath,

§

impl TupleStruct for NormalizedWindowRefwhere Entity: FromReflect + TypePath,

§

impl TupleStruct for DynamicTupleStruct

§

impl<S> TupleStruct for NextState<S>where S: States + TypePath, Option<S>: FromReflect + TypePath,

§

impl<S> TupleStruct for State<S>where S: States + FromReflect + TypePath,