Struct bevy::ecs::component::Components

pub struct Components { /* private fields */ }
Expand description

Stores metadata associated with each kind of Component in a given World.

Implementations§

§

impl Components

pub fn init_component<T>(&mut self, storages: &mut Storages) -> ComponentIdwhere T: Component,

Initializes a component of type T with this instance. If a component of this type has already been initialized, this will return the ID of the pre-existing component.

pub fn init_component_with_descriptor( &mut self, storages: &mut Storages, descriptor: ComponentDescriptor ) -> ComponentId

Initializes a component described by descriptor.

Note

If this method is called multiple times with identical descriptors, a distinct ComponentId will be created for each one.

pub fn len(&self) -> usize

Returns the number of components registered with this instance.

pub fn is_empty(&self) -> bool

Returns true if there are no components registered with this instance. Otherwise, this returns false.

pub fn get_info(&self, id: ComponentId) -> Option<&ComponentInfo>

Gets the metadata associated with the given component.

This will return an incorrect result if id did not come from the same world as self. It may return None or a garbage value.

pub fn get_name(&self, id: ComponentId) -> Option<&str>

Returns the name associated with the given component.

This will return an incorrect result if id did not come from the same world as self. It may return None or a garbage value.

pub unsafe fn get_info_unchecked(&self, id: ComponentId) -> &ComponentInfo

Gets the metadata associated with the given component.

Safety

id must be a valid ComponentId

pub fn get_id(&self, type_id: TypeId) -> Option<ComponentId>

Type-erased equivalent of Components::component_id.

pub fn component_id<T>(&self) -> Option<ComponentId>where T: Component,

Returns the ComponentId of the given Component type T.

The returned ComponentId is specific to the Components instance it was retrieved from and should not be used with another Components instance.

Returns None if the Component type has not yet been initialized using Components::init_component.

use bevy_ecs::prelude::*;

let mut world = World::new();

#[derive(Component)]
struct ComponentA;

let component_a_id = world.init_component::<ComponentA>();

assert_eq!(component_a_id, world.components().component_id::<ComponentA>().unwrap())

pub fn get_resource_id(&self, type_id: TypeId) -> Option<ComponentId>

Type-erased equivalent of Components::resource_id.

pub fn resource_id<T>(&self) -> Option<ComponentId>where T: Resource,

Returns the ComponentId of the given Resource type T.

The returned ComponentId is specific to the Components instance it was retrieved from and should not be used with another Components instance.

Returns None if the Resource type has not yet been initialized using Components::init_resource.

use bevy_ecs::prelude::*;

let mut world = World::new();

#[derive(Resource, Default)]
struct ResourceA;

let resource_a_id = world.init_resource::<ResourceA>();

assert_eq!(resource_a_id, world.components().resource_id::<ResourceA>().unwrap())

pub fn init_resource<T>(&mut self) -> ComponentIdwhere T: Resource,

Initializes a Resource of type T with this instance. If a resource of this type has already been initialized, this will return the ID of the pre-existing resource.

pub fn init_non_send<T>(&mut self) -> ComponentIdwhere T: Any,

Initializes a non-send resource of type T with this instance. If a resource of this type has already been initialized, this will return the ID of the pre-existing resource.

pub fn iter(&self) -> impl Iterator<Item = &ComponentInfo>

Gets an iterator over all components registered with this instance.

Trait Implementations§

§

impl Debug for Components

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for Components

§

fn default() -> Components

Returns the “default value” for a type. Read more
§

impl<'a> SystemParam for &'a Components

§

type State = ()

Used to store data which persists across invocations of a system.
§

type Item<'w, 's> = &'w Components

The item type returned when constructing this system param. The value of this associated type should be Self, instantiated with new lifetimes. Read more
§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <&'a Components as SystemParam>::State

Registers any World access used by this SystemParam and creates a new instance of this param’s State.
§

unsafe fn get_param<'w, 's>( _state: &'s mut <&'a Components as SystemParam>::State, _system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> <&'a Components as SystemParam>::Item<'w, 's>

Creates a parameter to be passed into a SystemParamFunction. Read more
§

fn new_archetype( _state: &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

For the specified Archetype, registers the components accessed by this SystemParam (if applicable).
§

fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)

Applies any deferred mutations stored in this SystemParam’s state. This is used to apply Commands during apply_deferred.
§

impl<'a> ReadOnlySystemParam for &'a Components

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,

§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T, Global>) -> Arc<dyn Any + Send + Sync, Global>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> FromWorld for Twhere T: Default,

§

fn from_world(_world: &mut World) -> T

Creates Self using data from the given World
source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, U> ToSample<U> for Twhere U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<S, T> Duplex<S> for Twhere T: FromSample<S> + ToSample<S>,