TupleStruct

Trait TupleStruct 

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

    // Provided methods
    fn to_dynamic_tuple_struct(&self) -> DynamicTupleStruct { ... }
    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 + '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 PartialReflect + '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.

Provided Methods§

Source

fn to_dynamic_tuple_struct(&self) -> DynamicTupleStruct

Creates a new DynamicTupleStruct from this tuple struct.

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>(&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.

Implementations on Foreign Types§

Source§

impl TupleStruct for InputFocus

Source§

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

Source§

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

Source§

fn field_len(&self) -> usize

Source§

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

Source§

fn to_dynamic_tuple_struct(&self) -> DynamicTupleStruct

Source§

impl TupleStruct for InputFocusVisible

Source§

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

Source§

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

Source§

fn field_len(&self) -> usize

Source§

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

Source§

fn to_dynamic_tuple_struct(&self) -> DynamicTupleStruct

Source§

impl TupleStruct for TabIndex

Source§

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

Source§

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

Source§

fn field_len(&self) -> usize

Source§

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

Source§

fn to_dynamic_tuple_struct(&self) -> DynamicTupleStruct

Implementors§

Source§

impl TupleStruct for AccessibilityRequested

Source§

impl TupleStruct for ManageAccessibilityUpdates

Source§

impl TupleStruct for Camera3dDepthTextureUsage

Source§

impl TupleStruct for MainPassResolutionOverride

Source§

impl TupleStruct for ManualTextureViewHandle

Source§

impl TupleStruct for RenderLayers

Source§

impl TupleStruct for VisibilityClass

Source§

impl TupleStruct for ComponentId

Source§

impl TupleStruct for EntityHashSet

Source§

impl TupleStruct for RemovedComponentEntity

Source§

impl TupleStruct for ObservedBy

Source§

impl TupleStruct for PanGesture

Source§

impl TupleStruct for PinchGesture

Source§

impl TupleStruct for RotationGesture

Source§

impl TupleStruct for AspectRatio

Source§

impl TupleStruct for Dir4

Source§

impl TupleStruct for FloatOrd

Source§

impl TupleStruct for MeshTag

Source§

impl TupleStruct for DefaultOpaqueRendererMethod

Source§

impl TupleStruct for MaterialBindGroupIndex

Source§

impl TupleStruct for MaterialBindGroupSlot

Source§

impl TupleStruct for Mesh3dWireframe

Source§

impl TupleStruct for DirectlyHovered

Source§

impl TupleStruct for Hovered

Source§

impl TupleStruct for BackgroundColor

Source§

impl TupleStruct for BackgroundGradient

Source§

impl TupleStruct for BorderGradient

Source§

impl TupleStruct for BoxShadow

Source§

impl TupleStruct for ChildOf

Source§

impl TupleStruct for Children

Source§

impl TupleStruct for ClearColor

Source§

impl TupleStruct for Dir2

Source§

impl TupleStruct for Dir3

Source§

impl TupleStruct for Dir3A

Source§

impl TupleStruct for GlobalTransform

Source§

impl TupleStruct for GlobalZIndex

Source§

impl TupleStruct for InheritedVisibility

Source§

impl TupleStruct for Mesh2d

Source§

impl TupleStruct for Mesh3d

Source§

impl TupleStruct for ScrollPosition

Source§

impl TupleStruct for Text2d

Source§

impl TupleStruct for Text

Source§

impl TupleStruct for TextBackgroundColor

Source§

impl TupleStruct for TextColor

Source§

impl TupleStruct for TextSpan

Source§

impl TupleStruct for UiGlobalTransform

Source§

impl TupleStruct for UiScale

Source§

impl TupleStruct for UiTargetCamera

Source§

impl TupleStruct for ViewVisibility

Source§

impl TupleStruct for ZIndex

Source§

impl TupleStruct for MipBias

Source§

impl TupleStruct for MainEntity

Source§

impl TupleStruct for RenderEntity

Source§

impl TupleStruct for Screenshot

Source§

impl TupleStruct for Anchor

Source§

impl TupleStruct for NormalizedWindowRef

Source§

impl TupleStruct for DynamicTupleStruct

Source§

impl<C> TupleStruct for Inherited<C>
where C: Component + Clone + PartialEq + TypePath + FromReflect + MaybeTyped + RegisterForReflection, Inherited<C>: Any + Send + Sync,

Source§

impl<C> TupleStruct for Propagate<C>
where C: Component + Clone + PartialEq + TypePath + FromReflect + MaybeTyped + RegisterForReflection, Propagate<C>: Any + Send + Sync,

Source§

impl<C> TupleStruct for PropagateOver<C>
where PropagateOver<C>: Any + Send + Sync, C: TypePath, PhantomData<fn() -> C>: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

impl<C> TupleStruct for PropagateStop<C>
where PropagateStop<C>: Any + Send + Sync, C: TypePath, PhantomData<fn() -> C>: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

impl<C> TupleStruct for SampleDerivativeWrapper<C>
where SampleDerivativeWrapper<C>: Any + Send + Sync, C: TypePath + PartialReflect + MaybeTyped + RegisterForReflection,

Source§

impl<C> TupleStruct for SampleTwoDerivativesWrapper<C>
where SampleTwoDerivativesWrapper<C>: Any + Send + Sync, C: TypePath + PartialReflect + MaybeTyped + RegisterForReflection,

Source§

impl<M> TupleStruct for MeshMaterial3d<M>
where M: Material + TypePath, MeshMaterial3d<M>: Any + Send + Sync, Handle<M>: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

impl<V> TupleStruct for EntityHashMap<V>
where EntityHashMap<V>: Any + Send + Sync, V: TypePath, HashMap<Entity, V, EntityHash>: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

impl<V> TupleStruct for EntityIndexMap<V>
where EntityIndexMap<V>: Any + Send + Sync, V: TypePath, IndexMap<Entity, V, EntityHash>: FromReflect + TypePath + MaybeTyped + RegisterForReflection,

Source§

impl<V, W> TupleStruct for Sum<V, W>
where Sum<V, W>: Any + Send + Sync, V: TypePath + FromReflect + MaybeTyped + RegisterForReflection, W: TypePath + FromReflect + MaybeTyped + RegisterForReflection,