docs: Improve some ComponentId doc cross-linking. (#9839)
				
					
				
			# Objective - When reading API docs and seeing a reference to `ComponentId`, it isn't immediately clear how to get one from your `Component`. It could be made to be more clear. ## Solution - Improve cross-linking of docs about `ComponentId`
This commit is contained in:
		
							parent
							
								
									5e91e5f3ce
								
							
						
					
					
						commit
						444245106e
					
				| @ -282,6 +282,10 @@ impl ComponentInfo { | |||||||
| /// A `ComponentId` is tightly coupled to its parent `World`. Attempting to use a `ComponentId` from
 | /// A `ComponentId` is tightly coupled to its parent `World`. Attempting to use a `ComponentId` from
 | ||||||
| /// one `World` to access the metadata of a `Component` in a different `World` is undefined behavior
 | /// one `World` to access the metadata of a `Component` in a different `World` is undefined behavior
 | ||||||
| /// and must not be attempted.
 | /// and must not be attempted.
 | ||||||
|  | ///
 | ||||||
|  | /// Given a type `T` which implements [`Component`], the `ComponentId` for `T` can be retrieved
 | ||||||
|  | /// from a `World` using [`World::component_id()`] or via [`Components::component_id()`]. Access
 | ||||||
|  | /// to the `ComponentId` for a [`Resource`] is available via [`Components::resource_id()`].
 | ||||||
| #[derive(Debug, Copy, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)] | #[derive(Debug, Copy, Clone, Hash, Ord, PartialOrd, Eq, PartialEq)] | ||||||
| pub struct ComponentId(usize); | pub struct ComponentId(usize); | ||||||
| 
 | 
 | ||||||
| @ -442,6 +446,11 @@ impl Components { | |||||||
|     /// Initializes a component of type `T` with this instance.
 |     /// Initializes a component of type `T` with this instance.
 | ||||||
|     /// If a component of this type has already been initialized, this will return
 |     /// If a component of this type has already been initialized, this will return
 | ||||||
|     /// the ID of the pre-existing component.
 |     /// the ID of the pre-existing component.
 | ||||||
|  |     ///
 | ||||||
|  |     /// # See also
 | ||||||
|  |     ///
 | ||||||
|  |     /// * [`Components::component_id()`]
 | ||||||
|  |     /// * [`Components::init_component_with_descriptor()`]
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn init_component<T: Component>(&mut self, storages: &mut Storages) -> ComponentId { |     pub fn init_component<T: Component>(&mut self, storages: &mut Storages) -> ComponentId { | ||||||
|         let type_id = TypeId::of::<T>(); |         let type_id = TypeId::of::<T>(); | ||||||
| @ -463,6 +472,11 @@ impl Components { | |||||||
|     ///
 |     ///
 | ||||||
|     /// If this method is called multiple times with identical descriptors, a distinct `ComponentId`
 |     /// If this method is called multiple times with identical descriptors, a distinct `ComponentId`
 | ||||||
|     /// will be created for each one.
 |     /// will be created for each one.
 | ||||||
|  |     ///
 | ||||||
|  |     /// # See also
 | ||||||
|  |     ///
 | ||||||
|  |     /// * [`Components::component_id()`]
 | ||||||
|  |     /// * [`Components::init_component()`]
 | ||||||
|     pub fn init_component_with_descriptor( |     pub fn init_component_with_descriptor( | ||||||
|         &mut self, |         &mut self, | ||||||
|         storages: &mut Storages, |         storages: &mut Storages, | ||||||
| @ -525,7 +539,7 @@ impl Components { | |||||||
|         self.components.get_unchecked(id.0) |         self.components.get_unchecked(id.0) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /// Type-erased equivalent of [`Components::component_id`].
 |     /// Type-erased equivalent of [`Components::component_id()`].
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn get_id(&self, type_id: TypeId) -> Option<ComponentId> { |     pub fn get_id(&self, type_id: TypeId) -> Option<ComponentId> { | ||||||
|         self.indices.get(&type_id).map(|index| ComponentId(*index)) |         self.indices.get(&type_id).map(|index| ComponentId(*index)) | ||||||
| @ -538,7 +552,7 @@ impl Components { | |||||||
|     /// instance.
 |     /// instance.
 | ||||||
|     ///
 |     ///
 | ||||||
|     /// Returns [`None`] if the `Component` type has not
 |     /// Returns [`None`] if the `Component` type has not
 | ||||||
|     /// yet been initialized using [`Components::init_component`].
 |     /// yet been initialized using [`Components::init_component()`].
 | ||||||
|     ///
 |     ///
 | ||||||
|     /// ```rust
 |     /// ```rust
 | ||||||
|     /// use bevy_ecs::prelude::*;
 |     /// use bevy_ecs::prelude::*;
 | ||||||
| @ -552,12 +566,18 @@ impl Components { | |||||||
|     ///
 |     ///
 | ||||||
|     /// assert_eq!(component_a_id, world.components().component_id::<ComponentA>().unwrap())
 |     /// assert_eq!(component_a_id, world.components().component_id::<ComponentA>().unwrap())
 | ||||||
|     /// ```
 |     /// ```
 | ||||||
|  |     ///
 | ||||||
|  |     /// # See also
 | ||||||
|  |     ///
 | ||||||
|  |     /// * [`Components::get_id()`]
 | ||||||
|  |     /// * [`Components::resource_id()`]
 | ||||||
|  |     /// * [`World::component_id()`]
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn component_id<T: Component>(&self) -> Option<ComponentId> { |     pub fn component_id<T: Component>(&self) -> Option<ComponentId> { | ||||||
|         self.get_id(TypeId::of::<T>()) |         self.get_id(TypeId::of::<T>()) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /// Type-erased equivalent of [`Components::resource_id`].
 |     /// Type-erased equivalent of [`Components::resource_id()`].
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn get_resource_id(&self, type_id: TypeId) -> Option<ComponentId> { |     pub fn get_resource_id(&self, type_id: TypeId) -> Option<ComponentId> { | ||||||
|         self.resource_indices |         self.resource_indices | ||||||
| @ -572,7 +592,7 @@ impl Components { | |||||||
|     /// instance.
 |     /// instance.
 | ||||||
|     ///
 |     ///
 | ||||||
|     /// Returns [`None`] if the `Resource` type has not
 |     /// Returns [`None`] if the `Resource` type has not
 | ||||||
|     /// yet been initialized using [`Components::init_resource`].
 |     /// yet been initialized using [`Components::init_resource()`].
 | ||||||
|     ///
 |     ///
 | ||||||
|     /// ```rust
 |     /// ```rust
 | ||||||
|     /// use bevy_ecs::prelude::*;
 |     /// use bevy_ecs::prelude::*;
 | ||||||
| @ -586,6 +606,11 @@ impl Components { | |||||||
|     ///
 |     ///
 | ||||||
|     /// assert_eq!(resource_a_id, world.components().resource_id::<ResourceA>().unwrap())
 |     /// assert_eq!(resource_a_id, world.components().resource_id::<ResourceA>().unwrap())
 | ||||||
|     /// ```
 |     /// ```
 | ||||||
|  |     ///
 | ||||||
|  |     /// # See also
 | ||||||
|  |     ///
 | ||||||
|  |     /// * [`Components::component_id()`]
 | ||||||
|  |     /// * [`Components::get_resource_id()`]
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn resource_id<T: Resource>(&self) -> Option<ComponentId> { |     pub fn resource_id<T: Resource>(&self) -> Option<ComponentId> { | ||||||
|         self.get_resource_id(TypeId::of::<T>()) |         self.get_resource_id(TypeId::of::<T>()) | ||||||
| @ -594,6 +619,10 @@ impl Components { | |||||||
|     /// Initializes a [`Resource`] of type `T` with this instance.
 |     /// Initializes a [`Resource`] of type `T` with this instance.
 | ||||||
|     /// If a resource of this type has already been initialized, this will return
 |     /// If a resource of this type has already been initialized, this will return
 | ||||||
|     /// the ID of the pre-existing resource.
 |     /// the ID of the pre-existing resource.
 | ||||||
|  |     ///
 | ||||||
|  |     /// # See also
 | ||||||
|  |     ///
 | ||||||
|  |     /// * [`Components::resource_id()`]
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn init_resource<T: Resource>(&mut self) -> ComponentId { |     pub fn init_resource<T: Resource>(&mut self) -> ComponentId { | ||||||
|         // SAFETY: The [`ComponentDescriptor`] matches the [`TypeId`]
 |         // SAFETY: The [`ComponentDescriptor`] matches the [`TypeId`]
 | ||||||
|  | |||||||
| @ -219,6 +219,11 @@ impl World { | |||||||
|     ///
 |     ///
 | ||||||
|     /// assert_eq!(component_a_id, world.component_id::<ComponentA>().unwrap())
 |     /// assert_eq!(component_a_id, world.component_id::<ComponentA>().unwrap())
 | ||||||
|     /// ```
 |     /// ```
 | ||||||
|  |     ///
 | ||||||
|  |     /// # See also
 | ||||||
|  |     ///
 | ||||||
|  |     /// * [`Components::component_id()`]
 | ||||||
|  |     /// * [`Components::get_id()`]
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn component_id<T: Component>(&self) -> Option<ComponentId> { |     pub fn component_id<T: Component>(&self) -> Option<ComponentId> { | ||||||
|         self.components.component_id::<T>() |         self.components.component_id::<T>() | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Bruce Mitchener
						Bruce Mitchener