Struct bevy::reflect::TypeRegistryInternal
[−]pub struct TypeRegistryInternal { /* private fields */ }
Expand description
A registry of reflected types.
Implementations
impl TypeRegistry
impl TypeRegistry
pub fn empty() -> TypeRegistry
pub fn empty() -> TypeRegistry
Create a type registry with no registered types.
pub fn new() -> TypeRegistry
pub fn new() -> TypeRegistry
Create a type registry with default registrations for primitive types.
pub fn register<T>(&mut self) where
T: GetTypeRegistration,
pub fn register<T>(&mut self) where
T: GetTypeRegistration,
Registers the type T
, adding reflect data as specified in the Reflect
derive:
#[derive(Reflect)]
#[reflect(Component, Serialize, Deserialize)] // will register ReflectComponent, ReflectSerialize, ReflectDeserialize
pub fn add_registration(&mut self, registration: TypeRegistration)
pub fn add_registration(&mut self, registration: TypeRegistration)
Registers the type described by registration
.
pub fn register_type_data<T, D>(&mut self) where
T: 'static + Reflect,
D: TypeData + FromType<T>,
pub fn register_type_data<T, D>(&mut self) where
T: 'static + Reflect,
D: TypeData + FromType<T>,
Registers the type data D
for type T
.
Most of the time TypeRegistry::register
can be used instead to register a type you derived Reflect
for.
However, in cases where you want to add a piece of type data that was not included in the list of #[reflect(...)]
type data in the derive,
or where the type is generic and cannot register e.g. ReflectSerialize
unconditionally without knowing the specific type parameters,
this method can be used to insert additional type data.
Example
use bevy_reflect::{TypeRegistry, ReflectSerialize, ReflectDeserialize};
let mut type_registry = TypeRegistry::default();
type_registry.register::<Option<String>>();
type_registry.register_type_data::<Option<String>, ReflectSerialize>();
type_registry.register_type_data::<Option<String>, ReflectDeserialize>();
pub fn get(&self, type_id: TypeId) -> Option<&TypeRegistration>
pub fn get(&self, type_id: TypeId) -> Option<&TypeRegistration>
Returns a reference to the TypeRegistration
of the type with the
given TypeId
.
If the specified type has not been registered, returns None
.
pub fn get_mut(&mut self, type_id: TypeId) -> Option<&mut TypeRegistration>
pub fn get_mut(&mut self, type_id: TypeId) -> Option<&mut TypeRegistration>
Returns a mutable reference to the TypeRegistration
of the type with
the given TypeId
.
If the specified type has not been registered, returns None
.
pub fn get_with_name(&self, type_name: &str) -> Option<&TypeRegistration>
pub fn get_with_name(&self, type_name: &str) -> Option<&TypeRegistration>
Returns a reference to the TypeRegistration
of the type with the
given name.
If no type with the given name has been registered, returns None
.
pub fn get_with_name_mut(
&mut self,
type_name: &str
) -> Option<&mut TypeRegistration>
pub fn get_with_name_mut(
&mut self,
type_name: &str
) -> Option<&mut TypeRegistration>
Returns a mutable reference to the TypeRegistration
of the type with
the given name.
If no type with the given name has been registered, returns None
.
pub fn get_with_short_name(
&self,
short_type_name: &str
) -> Option<&TypeRegistration>
pub fn get_with_short_name(
&self,
short_type_name: &str
) -> Option<&TypeRegistration>
Returns a reference to the TypeRegistration
of the type with
the given short name.
If the short name is ambiguous, or if no type with the given short name
has been registered, returns None
.
pub fn get_with_short_name_mut(
&mut self,
short_type_name: &str
) -> Option<&mut TypeRegistration>
pub fn get_with_short_name_mut(
&mut self,
short_type_name: &str
) -> Option<&mut TypeRegistration>
Returns a mutable reference to the TypeRegistration
of the type with
the given short name.
If the short name is ambiguous, or if no type with the given short name
has been registered, returns None
.
pub fn get_type_data<T>(&self, type_id: TypeId) -> Option<&T> where
T: TypeData,
pub fn get_type_data<T>(&self, type_id: TypeId) -> Option<&T> where
T: TypeData,
Returns a reference to the TypeData
of type T
associated with the given TypeId
.
The returned value may be used to downcast Reflect
trait objects to
trait objects of the trait used to generate T
, provided that the
underlying reflected type has the proper #[reflect(DoThing)]
attribute.
If the specified type has not been registered, or if T
is not present
in its type registration, returns None
.
pub fn get_type_data_mut<T>(&mut self, type_id: TypeId) -> Option<&mut T> where
T: TypeData,
pub fn get_type_data_mut<T>(&mut self, type_id: TypeId) -> Option<&mut T> where
T: TypeData,
Returns a mutable reference to the TypeData
of type T
associated with the given TypeId
.
If the specified type has not been registered, or if T
is not present
in its type registration, returns None
.
pub fn get_type_info(&self, type_id: TypeId) -> Option<&'static TypeInfo>
pub fn get_type_info(&self, type_id: TypeId) -> Option<&'static TypeInfo>
Returns the TypeInfo
associated with the given TypeId
.
If the specified type has not been registered, returns None
.
pub fn iter(&self) -> impl Iterator<Item = &TypeRegistration>
pub fn iter(&self) -> impl Iterator<Item = &TypeRegistration>
Returns an iterator over the TypeRegistration
s of the registered
types.
pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut TypeRegistration>
pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut TypeRegistration>
Returns a mutable iterator over the TypeRegistration
s of the registered
types.
Trait Implementations
impl Default for TypeRegistry
impl Default for TypeRegistry
fn default() -> TypeRegistry
fn default() -> TypeRegistry
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl !RefUnwindSafe for TypeRegistry
impl Send for TypeRegistry
impl Sync for TypeRegistry
impl Unpin for TypeRegistry
impl !UnwindSafe for TypeRegistry
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
Return the T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, 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
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn as_any(&self) -> &(dyn Any + 'static)
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. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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. Read more
impl<T> FromWorld for T where
T: Default,
impl<T> FromWorld for T where
T: Default,
fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self
using data from the given World
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn instrument(self, span: Span) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourcefn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
fn in_current_span(self) -> Instrumented<Self>ⓘNotable traits for Instrumented<T>impl<T> Future for Instrumented<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
where
S: Into<Dispatch>,
T: Future, type Output = <T as Future>::Output;
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
fn with_current_subscriber(self) -> WithDispatch<Self>ⓘNotable traits for WithDispatch<T>impl<T> Future for WithDispatch<T> where
T: Future, type Output = <T as Future>::Output;
T: Future, type Output = <T as Future>::Output;
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more