pub struct Components { /* private fields */ }Implementations§
Source§impl Components
impl Components
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the number of components registered or queued with this instance.
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true if there are no components registered or queued with this instance. Otherwise, this returns false.
Sourcepub fn num_queued(&self) -> usize
pub fn num_queued(&self) -> usize
Returns the number of components registered with this instance.
Sourcepub fn any_queued(&self) -> bool
pub fn any_queued(&self) -> bool
Returns true if there are any components registered with this instance. Otherwise, this returns false.
Sourcepub fn num_queued_mut(&mut self) -> usize
pub fn num_queued_mut(&mut self) -> usize
A faster version of Self::num_queued.
Sourcepub fn any_queued_mut(&mut self) -> bool
pub fn any_queued_mut(&mut self) -> bool
A faster version of Self::any_queued.
Sourcepub fn num_registered(&self) -> usize
pub fn num_registered(&self) -> usize
Returns the number of components registered with this instance.
Sourcepub fn any_registered(&self) -> bool
pub fn any_registered(&self) -> bool
Returns true if there are any components registered with this instance. Otherwise, this returns false.
Sourcepub fn get_info(&self, id: ComponentId) -> Option<&ComponentInfo>
pub fn get_info(&self, id: ComponentId) -> Option<&ComponentInfo>
Gets the metadata associated with the given component, if it is registered.
This will return None if the id is not registered or is queued.
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.
Sourcepub fn get_descriptor<'a>(
&'a self,
id: ComponentId,
) -> Option<Cow<'a, ComponentDescriptor>>
pub fn get_descriptor<'a>( &'a self, id: ComponentId, ) -> Option<Cow<'a, ComponentDescriptor>>
Gets the ComponentDescriptor of the component with this ComponentId if it is present.
This will return None only if the id is neither registered nor queued to be registered.
Currently, the Cow will be Cow::Owned if and only if the component is queued. It will be Cow::Borrowed otherwise.
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.
Sourcepub fn get_name<'a>(&'a self, id: ComponentId) -> Option<DebugName>
pub fn get_name<'a>(&'a self, id: ComponentId) -> Option<DebugName>
Gets the name of the component with this ComponentId if it is present.
This will return None only if the id is neither registered nor queued to be registered.
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.
Sourcepub unsafe fn get_info_unchecked(&self, id: ComponentId) -> &ComponentInfo
pub unsafe fn get_info_unchecked(&self, id: ComponentId) -> &ComponentInfo
Gets the metadata associated with the given component.
§Safety
id must be a valid and fully registered ComponentId.
Sourcepub fn is_id_valid(&self, id: ComponentId) -> bool
pub fn is_id_valid(&self, id: ComponentId) -> bool
Returns true if the ComponentId is fully registered and valid.
Ids may be invalid if they are still queued to be registered.
Those ids are still correct, but they are not usable in every context yet.
Sourcepub fn get_valid_id(&self, type_id: TypeId) -> Option<ComponentId>
pub fn get_valid_id(&self, type_id: TypeId) -> Option<ComponentId>
Type-erased equivalent of Components::valid_component_id().
Sourcepub fn valid_component_id<T>(&self) -> Option<ComponentId>where
T: Component,
pub fn valid_component_id<T>(&self) -> Option<ComponentId>where
T: Component,
Returns the ComponentId of the given Component type T if it is fully registered.
If you want to include queued registration, see Components::component_id().
use bevy_ecs::prelude::*;
let mut world = World::new();
#[derive(Component)]
struct ComponentA;
let component_a_id = world.register_component::<ComponentA>();
assert_eq!(component_a_id, world.components().valid_component_id::<ComponentA>().unwrap())§See also
Sourcepub fn get_valid_resource_id(&self, type_id: TypeId) -> Option<ComponentId>
pub fn get_valid_resource_id(&self, type_id: TypeId) -> Option<ComponentId>
Type-erased equivalent of Components::valid_resource_id().
Sourcepub fn valid_resource_id<T>(&self) -> Option<ComponentId>where
T: Resource,
pub fn valid_resource_id<T>(&self) -> Option<ComponentId>where
T: Resource,
Returns the ComponentId of the given Resource type T if it is fully registered.
If you want to include queued registration, see Components::resource_id().
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().valid_resource_id::<ResourceA>().unwrap())§See also
Sourcepub fn get_id(&self, type_id: TypeId) -> Option<ComponentId>
pub fn get_id(&self, type_id: TypeId) -> Option<ComponentId>
Type-erased equivalent of Components::component_id().
Sourcepub fn component_id<T>(&self) -> Option<ComponentId>where
T: Component,
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
ComponentsRegistrator::register_component() or
ComponentsQueuedRegistrator::queue_register_component().
use bevy_ecs::prelude::*;
let mut world = World::new();
#[derive(Component)]
struct ComponentA;
let component_a_id = world.register_component::<ComponentA>();
assert_eq!(component_a_id, world.components().component_id::<ComponentA>().unwrap())§See also
Sourcepub fn get_resource_id(&self, type_id: TypeId) -> Option<ComponentId>
pub fn get_resource_id(&self, type_id: TypeId) -> Option<ComponentId>
Type-erased equivalent of Components::resource_id().
Sourcepub fn resource_id<T>(&self) -> Option<ComponentId>where
T: Resource,
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
ComponentsRegistrator::register_resource() or
ComponentsQueuedRegistrator::queue_register_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())§See also
Sourcepub fn iter_registered(&self) -> impl Iterator<Item = &ComponentInfo>
pub fn iter_registered(&self) -> impl Iterator<Item = &ComponentInfo>
Gets an iterator over all components fully registered with this instance.
Trait Implementations§
Source§impl Debug for Components
impl Debug for Components
Source§impl Default for Components
impl Default for Components
Source§fn default() -> Components
fn default() -> Components
Source§impl<'a> SystemParam for &'a Components
impl<'a> SystemParam for &'a Components
Source§type Item<'w, 's> = &'w Components
type Item<'w, 's> = &'w Components
Self, instantiated with new lifetimes. Read moreSource§fn init_state(_world: &mut World) -> <&'a Components as SystemParam>::State
fn init_state(_world: &mut World) -> <&'a Components as SystemParam>::State
State.Source§fn init_access(
_state: &<&'a Components as SystemParam>::State,
_system_meta: &mut SystemMeta,
_component_access_set: &mut FilteredAccessSet,
_world: &mut World,
)
fn init_access( _state: &<&'a Components as SystemParam>::State, _system_meta: &mut SystemMeta, _component_access_set: &mut FilteredAccessSet, _world: &mut World, )
World access used by this SystemParamSource§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>
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>
SystemParamFunction. Read moreSource§fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
SystemParam’s state.
This is used to apply Commands during ApplyDeferred.Source§fn queue(
state: &mut Self::State,
system_meta: &SystemMeta,
world: DeferredWorld<'_>,
)
fn queue( state: &mut Self::State, system_meta: &SystemMeta, world: DeferredWorld<'_>, )
ApplyDeferred.Source§unsafe fn validate_param(
state: &mut Self::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'_>,
) -> Result<(), SystemParamValidationError>
unsafe fn validate_param( state: &mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'_>, ) -> Result<(), SystemParamValidationError>
impl<'a> ReadOnlySystemParam for &'a Components
Auto Trait Implementations§
impl !Freeze for Components
impl !RefUnwindSafe for Components
impl !Send for Components
impl !Sync for Components
impl Unpin for Components
impl !UnwindSafe for Components
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more