logo
pub trait Struct: Reflect {
    fn field(&self, name: &str) -> Option<&(dyn Reflect + 'static)>;
    fn field_mut(&mut self, name: &str) -> Option<&mut (dyn Reflect + 'static)>;
    fn field_at(&self, index: usize) -> Option<&(dyn Reflect + 'static)>;
    fn field_at_mut(
        &mut self,
        index: usize
    ) -> Option<&mut (dyn Reflect + 'static)>; fn name_at(&self, index: usize) -> Option<&str>; fn field_len(&self) -> usize; fn iter_fields(&self) -> FieldIter<'_>Notable traits for FieldIter<'a>impl<'a> Iterator for FieldIter<'a> type Item = &'a (dyn Reflect + 'static);; fn clone_dynamic(&self) -> DynamicStruct; }
Expand description

A reflected Rust regular struct type.

Implementors of this trait allow their fields to be addressed by name as well as by index.

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

Example

use bevy_reflect::{Reflect, Struct};

#[derive(Reflect)]
struct Foo {
    bar: String,
}

let foo = Foo { bar: "Hello, world!".to_string() };

assert_eq!(foo.field_len(), 1);
assert_eq!(foo.name_at(0), Some("bar"));

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

Required Methods

Returns a reference to the value of the field named name as a &dyn Reflect.

Returns a mutable reference to the value of the field named name as a &mut dyn Reflect.

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

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

Returns the name of the field with index index.

Returns the number of fields in the struct.

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

Clones the struct into a DynamicStruct.

Trait Implementations

Returns a reference to the value of the field named name, downcast to T. Read more

Returns a mutable reference to the value of the field named name, downcast to T. Read more

Implementors