Skip to main content

FromType

Trait FromType 

Source
pub trait FromType<T> {
    // Required method
    fn from_type() -> Self;

    // Provided method
    fn insert_dependencies(_type_registration: &mut TypeRegistration) { ... }
}
Expand description

Trait used to generate TypeData for trait reflection.

This is used by the #[derive(Reflect)] macro to generate an implementation of TypeData to pass to TypeRegistration::insert.

Required Methods§

Source

fn from_type() -> Self

Creates an instance of Self for type T.

Provided Methods§

Source

fn insert_dependencies(_type_registration: &mut TypeRegistration)

Inserts TypeData dependencies of this TypeData. This is especially useful for trait TypeData that has a supertrait (ex: A: B). When the TypeData for A is inserted, the B TypeData will also be inserted.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, E> FromType<E> for ReflectEvent
where E: Event + Reflect + TypePath, <E as Event>::Trigger<'a>: Default,

Source§

impl<B> FromType<B> for ReflectBundle

Source§

impl<B> FromType<B> for ReflectFromWorld
where B: Reflect + FromWorld,

Source§

impl<C> FromType<C> for ReflectMapEntities

Source§

impl<C> FromType<C> for ReflectComponent
where C: Component + Reflect + TypePath,

Source§

impl<M> FromType<M> for ReflectMessage
where M: Message + Reflect + TypePath,

Source§

impl<R> FromType<R> for ReflectResource

Source§

impl<T> FromType<T> for ReflectAdd
where T: Reflect + Add, <T as Add>::Output: Reflect,

Source§

impl<T> FromType<T> for ReflectAddAssign
where T: Reflect + AddAssign,

Source§

impl<T> FromType<T> for ReflectDefault
where T: Reflect + Default,

Source§

impl<T> FromType<T> for ReflectDeserialize
where T: for<'a> Deserialize<'a> + Reflect,

Source§

impl<T> FromType<T> for ReflectDiv
where T: Reflect + Div, <T as Div>::Output: Reflect,

Source§

impl<T> FromType<T> for ReflectDivAssign
where T: Reflect + DivAssign,

Source§

impl<T> FromType<T> for ReflectFromReflect
where T: FromReflect,

Source§

impl<T> FromType<T> for ReflectMul
where T: Reflect + Mul, <T as Mul>::Output: Reflect,

Source§

impl<T> FromType<T> for ReflectMulAssign
where T: Reflect + MulAssign,

Source§

impl<T> FromType<T> for ReflectRem
where T: Reflect + Rem, <T as Rem>::Output: Reflect,

Source§

impl<T> FromType<T> for ReflectRemAssign
where T: Reflect + RemAssign,

Source§

impl<T> FromType<T> for ReflectSerialize

Source§

impl<T> FromType<T> for ReflectSub
where T: Reflect + Sub, <T as Sub>::Output: Reflect,

Source§

impl<T> FromType<T> for ReflectSubAssign
where T: Reflect + SubAssign,

Source§

impl<T> FromType<T> for ReflectDeserializeWithRegistry
where T: PartialReflect + for<'de> DeserializeWithRegistry<'de>,

Source§

impl<T> FromType<T> for ReflectSerializeWithRegistry

Source§

impl<T> FromType<T> for ReflectFromPtr
where T: Reflect,