Skip to main content

AssetId

Enum AssetId 

Source
pub enum AssetId<A>
where A: Asset,
{ Index { index: AssetIndex, marker: PhantomData<fn() -> A>, }, Uuid { uuid: Uuid, }, }
Expand description

A unique runtime-only identifier for an Asset. This is cheap to Copy/Clone and is not directly tied to the lifetime of the Asset. This means it can point to an Asset that no longer exists.

For an identifier tied to the lifetime of an asset, see Handle.

For an “untyped” / “generic-less” id, see UntypedAssetId.

Variants§

§

Index

A small / efficient runtime identifier that can be used to efficiently look up an asset stored in Assets. This is the “default” identifier used for assets. The alternative(s) (ex: AssetId::Uuid) will only be used if assets are explicitly registered that way.

Fields

§index: AssetIndex

The unstable, opaque index of the asset.

§marker: PhantomData<fn() -> A>

A marker to store the type information of the asset.

§

Uuid

A stable-across-runs / const asset identifier. This will only be used if an asset is explicitly registered in Assets with one.

Fields

§uuid: Uuid

The UUID provided during asset registration.

Implementations§

Source§

impl<A> AssetId<A>
where A: Asset,

Source

pub const DEFAULT_UUID: Uuid

The uuid for the default AssetId. It is valid to assign a value to this in Assets and by convention (where appropriate) assets should support this pattern.

Source

pub const INVALID_UUID: Uuid

This asset id should never be valid. Assigning a value to this in Assets will produce undefined behavior, so don’t do it!

Source

pub const fn invalid() -> AssetId<A>

Returns an AssetId with Self::INVALID_UUID, which should never be assigned to.

Examples found in repository?
examples/shader_advanced/custom_phase_item.rs (line 303)
227fn queue_custom_phase_item(
228    pipeline_cache: Res<PipelineCache>,
229    mut pipeline: ResMut<CustomPhasePipeline>,
230    mut opaque_render_phases: ResMut<ViewBinnedRenderPhases<Opaque3d>>,
231    opaque_draw_functions: Res<DrawFunctions<Opaque3d>>,
232    views: Query<(&ExtractedView, &RenderVisibleEntities, &Msaa)>,
233    dirty_specializations: Res<DirtySpecializations>,
234    mut pending_custom_phase_item_queues: ResMut<PendingCustomPhaseItemQueues>,
235) {
236    let draw_custom_phase_item = opaque_draw_functions
237        .read()
238        .id::<DrawCustomPhaseItemCommands>();
239
240    // Render phases are per-view, so we need to iterate over all views so that
241    // the entity appears in them. (In this example, we have only one view, but
242    // it's good practice to loop over all views anyway.)
243    for (view, view_visible_entities, msaa) in views.iter() {
244        let Some(opaque_phase) = opaque_render_phases.get_mut(&view.retained_view_entity) else {
245            continue;
246        };
247
248        // Fetch the list of visible entities in the `CustomRenderedEntity`
249        // class. If there are no such entities, then we have no entities to
250        // render, and we're done.
251        let Some(render_visible_mesh_entities) =
252            view_visible_entities.get::<CustomRenderedEntity>()
253        else {
254            continue;
255        };
256
257        let view_pending_custom_phase_item_queues =
258            pending_custom_phase_item_queues.prepare_for_new_frame(view.retained_view_entity);
259
260        // First, remove meshes that need to be respecialized, and those that
261        // were removed, from the bins.
262        for &main_entity in dirty_specializations
263            .iter_to_dequeue(view.retained_view_entity, render_visible_mesh_entities)
264        {
265            opaque_phase.remove(main_entity);
266        }
267
268        // Find all the custom rendered entities that are visible from this
269        // view.
270        for (render_entity, main_entity) in dirty_specializations.iter_to_queue(
271            view.retained_view_entity,
272            render_visible_mesh_entities,
273            &view_pending_custom_phase_item_queues.prev_frame,
274        ) {
275            // Ordinarily, the [`SpecializedRenderPipeline::Key`] would contain
276            // some per-view settings, such as whether the view is HDR, but for
277            // simplicity's sake we simply hard-code the view's characteristics,
278            // with the exception of number of MSAA samples.
279            let Ok(pipeline_id) = pipeline
280                .variants
281                .specialize(&pipeline_cache, CustomPhaseKey(*msaa))
282            else {
283                continue;
284            };
285
286            // Add the custom render item. We use the
287            // [`BinnedRenderPhaseType::NonMesh`] type to skip the special
288            // handling that Bevy has for meshes (preprocessing, indirect
289            // draws, etc.)
290            //
291            // The asset ID is arbitrary; we simply use [`AssetId::invalid`],
292            // but you can use anything you like. Note that the asset ID need
293            // not be the ID of a [`Mesh`].
294            opaque_phase.add(
295                Opaque3dBatchSetKey {
296                    draw_function: draw_custom_phase_item,
297                    pipeline: pipeline_id,
298                    material_bind_group_index: None,
299                    lightmap_slab: None,
300                    slabs: MeshSlabs::default(),
301                },
302                Opaque3dBinKey {
303                    asset_id: AssetId::<Mesh>::invalid().untyped(),
304                },
305                (*render_entity, *main_entity),
306                InputUniformIndex::default(),
307                BinnedRenderPhaseType::NonMesh,
308            );
309        }
310    }
311}
Source

pub fn untyped(self) -> UntypedAssetId

Converts this to an “untyped” / “generic-less” Asset identifier that stores the type information inside the UntypedAssetId.

Examples found in repository?
examples/shader_advanced/manual_material.rs (line 258)
242fn extract_image_materials(
243    mut material_instances: ResMut<RenderMaterialInstances>,
244    changed_meshes_query: Extract<
245        Query<
246            (Entity, &ViewVisibility, &ImageMaterial3d),
247            Or<(Changed<ViewVisibility>, Changed<ImageMaterial3d>)>,
248        >,
249    >,
250) {
251    let last_change_tick = material_instances.current_change_tick;
252
253    for (entity, view_visibility, material) in &changed_meshes_query {
254        if view_visibility.get() {
255            material_instances.instances.insert(
256                entity.into(),
257                RenderMaterialInstance {
258                    asset_id: material.0.id().untyped(),
259                    last_change_tick,
260                },
261            );
262        } else {
263            material_instances
264                .instances
265                .remove(&MainEntity::from(entity));
266        }
267    }
268}
More examples
Hide additional examples
examples/shader_advanced/custom_phase_item.rs (line 303)
227fn queue_custom_phase_item(
228    pipeline_cache: Res<PipelineCache>,
229    mut pipeline: ResMut<CustomPhasePipeline>,
230    mut opaque_render_phases: ResMut<ViewBinnedRenderPhases<Opaque3d>>,
231    opaque_draw_functions: Res<DrawFunctions<Opaque3d>>,
232    views: Query<(&ExtractedView, &RenderVisibleEntities, &Msaa)>,
233    dirty_specializations: Res<DirtySpecializations>,
234    mut pending_custom_phase_item_queues: ResMut<PendingCustomPhaseItemQueues>,
235) {
236    let draw_custom_phase_item = opaque_draw_functions
237        .read()
238        .id::<DrawCustomPhaseItemCommands>();
239
240    // Render phases are per-view, so we need to iterate over all views so that
241    // the entity appears in them. (In this example, we have only one view, but
242    // it's good practice to loop over all views anyway.)
243    for (view, view_visible_entities, msaa) in views.iter() {
244        let Some(opaque_phase) = opaque_render_phases.get_mut(&view.retained_view_entity) else {
245            continue;
246        };
247
248        // Fetch the list of visible entities in the `CustomRenderedEntity`
249        // class. If there are no such entities, then we have no entities to
250        // render, and we're done.
251        let Some(render_visible_mesh_entities) =
252            view_visible_entities.get::<CustomRenderedEntity>()
253        else {
254            continue;
255        };
256
257        let view_pending_custom_phase_item_queues =
258            pending_custom_phase_item_queues.prepare_for_new_frame(view.retained_view_entity);
259
260        // First, remove meshes that need to be respecialized, and those that
261        // were removed, from the bins.
262        for &main_entity in dirty_specializations
263            .iter_to_dequeue(view.retained_view_entity, render_visible_mesh_entities)
264        {
265            opaque_phase.remove(main_entity);
266        }
267
268        // Find all the custom rendered entities that are visible from this
269        // view.
270        for (render_entity, main_entity) in dirty_specializations.iter_to_queue(
271            view.retained_view_entity,
272            render_visible_mesh_entities,
273            &view_pending_custom_phase_item_queues.prev_frame,
274        ) {
275            // Ordinarily, the [`SpecializedRenderPipeline::Key`] would contain
276            // some per-view settings, such as whether the view is HDR, but for
277            // simplicity's sake we simply hard-code the view's characteristics,
278            // with the exception of number of MSAA samples.
279            let Ok(pipeline_id) = pipeline
280                .variants
281                .specialize(&pipeline_cache, CustomPhaseKey(*msaa))
282            else {
283                continue;
284            };
285
286            // Add the custom render item. We use the
287            // [`BinnedRenderPhaseType::NonMesh`] type to skip the special
288            // handling that Bevy has for meshes (preprocessing, indirect
289            // draws, etc.)
290            //
291            // The asset ID is arbitrary; we simply use [`AssetId::invalid`],
292            // but you can use anything you like. Note that the asset ID need
293            // not be the ID of a [`Mesh`].
294            opaque_phase.add(
295                Opaque3dBatchSetKey {
296                    draw_function: draw_custom_phase_item,
297                    pipeline: pipeline_id,
298                    material_bind_group_index: None,
299                    lightmap_slab: None,
300                    slabs: MeshSlabs::default(),
301                },
302                Opaque3dBinKey {
303                    asset_id: AssetId::<Mesh>::invalid().untyped(),
304                },
305                (*render_entity, *main_entity),
306                InputUniformIndex::default(),
307                BinnedRenderPhaseType::NonMesh,
308            );
309        }
310    }
311}

Trait Implementations§

Source§

impl<A> Clone for AssetId<A>
where A: Asset,

Source§

fn clone(&self) -> AssetId<A>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<A> Copy for AssetId<A>
where A: Asset,

Source§

impl<A> Debug for AssetId<A>
where A: Asset,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<A> Default for AssetId<A>
where A: Asset,

Source§

fn default() -> AssetId<A>

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

impl<'de, A> Deserialize<'de> for AssetId<A>
where A: Asset,

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<AssetId<A>, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<A> Display for AssetId<A>
where A: Asset,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<A> Enum for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn field(&self, __name_param: &str) -> Option<&(dyn PartialReflect + 'static)>

Returns a reference to the value of the field (in the current variant) with the given name. Read more
Source§

fn field_at( &self, __index_param: usize, ) -> Option<&(dyn PartialReflect + 'static)>

Returns a reference to the value of the field (in the current variant) at the given index.
Source§

fn field_mut( &mut self, __name_param: &str, ) -> Option<&mut (dyn PartialReflect + 'static)>

Returns a mutable reference to the value of the field (in the current variant) with the given name. Read more
Source§

fn field_at_mut( &mut self, __index_param: usize, ) -> Option<&mut (dyn PartialReflect + 'static)>

Returns a mutable reference to the value of the field (in the current variant) at the given index.
Source§

fn index_of(&self, __name_param: &str) -> Option<usize>

Returns the index of the field (in the current variant) with the given name. Read more
Source§

fn name_at(&self, __index_param: usize) -> Option<&str>

Returns the name of the field (in the current variant) with the given index. Read more
Source§

fn iter_fields(&self) -> VariantFieldIter<'_>

Returns an iterator over the values of the current variant’s fields.
Source§

fn field_len(&self) -> usize

Returns the number of fields in the current variant.
Source§

fn variant_name(&self) -> &str

The name of the current variant.
Source§

fn variant_index(&self) -> usize

The index of the current variant.
Source§

fn variant_type(&self) -> VariantType

The type of the current variant.
Source§

fn to_dynamic_enum(&self) -> DynamicEnum

Creates a new DynamicEnum from this enum.
Source§

fn is_variant(&self, variant_type: VariantType) -> bool

Returns true if the current variant’s type matches the given one.
Source§

fn variant_path(&self) -> String

Returns the full path to the current variant.
Source§

fn get_represented_enum_info(&self) -> Option<&'static EnumInfo>

Will return None if TypeInfo is not available.
Source§

impl<A> Eq for AssetId<A>
where A: Asset,

Source§

impl<T> Equivalent<Handle<T>> for AssetId<T>
where T: Asset,

Source§

fn equivalent(&self, key: &Handle<T>) -> bool

Compare self to key and return true if they are equal.
Source§

impl From<&AnimationGraphHandle> for AssetId<AnimationGraph>

Source§

fn from(handle: &AnimationGraphHandle) -> AssetId<AnimationGraph>

Converts to this type from the input type.
Source§

impl<A> From<&Handle<A>> for AssetId<A>
where A: Asset,

Source§

fn from(value: &Handle<A>) -> AssetId<A>

Converts to this type from the input type.
Source§

impl<M> From<&MaterialNode<M>> for AssetId<M>
where M: UiMaterial,

Source§

fn from(material: &MaterialNode<M>) -> AssetId<M>

Converts to this type from the input type.
Source§

impl From<&Mesh2d> for AssetId<Mesh>

Source§

fn from(mesh: &Mesh2d) -> AssetId<Mesh>

Converts to this type from the input type.
Source§

impl From<&Mesh3d> for AssetId<Mesh>

Source§

fn from(mesh: &Mesh3d) -> AssetId<Mesh>

Converts to this type from the input type.
Source§

impl<M> From<&MeshMaterial2d<M>> for AssetId<M>
where M: Material2d,

Source§

fn from(material: &MeshMaterial2d<M>) -> AssetId<M>

Converts to this type from the input type.
Source§

impl<M> From<&MeshMaterial3d<M>> for AssetId<M>
where M: Material,

Source§

fn from(material: &MeshMaterial3d<M>) -> AssetId<M>

Converts to this type from the input type.
Source§

impl From<&MeshletMesh3d> for AssetId<MeshletMesh>

Source§

fn from(mesh: &MeshletMesh3d) -> AssetId<MeshletMesh>

Converts to this type from the input type.
Source§

impl<A> From<&mut Handle<A>> for AssetId<A>
where A: Asset,

Source§

fn from(value: &mut Handle<A>) -> AssetId<A>

Converts to this type from the input type.
Source§

impl<A> From<(AssetIndex, PhantomData<fn() -> A>)> for AssetId<A>
where A: Asset,

Source§

fn from(value: (AssetIndex, PhantomData<fn() -> A>)) -> AssetId<A>

Converts to this type from the input type.
Source§

impl From<AnimationGraphHandle> for AssetId<AnimationGraph>

Source§

fn from(handle: AnimationGraphHandle) -> AssetId<AnimationGraph>

Converts to this type from the input type.
Source§

impl<A> From<AssetId<A>> for UntypedAssetId
where A: Asset,

Source§

fn from(value: AssetId<A>) -> UntypedAssetId

Converts to this type from the input type.
Source§

impl<A> From<AssetIndex> for AssetId<A>
where A: Asset,

Source§

fn from(value: AssetIndex) -> AssetId<A>

Converts to this type from the input type.
Source§

impl<M> From<MaterialNode<M>> for AssetId<M>
where M: UiMaterial,

Source§

fn from(material: MaterialNode<M>) -> AssetId<M>

Converts to this type from the input type.
Source§

impl From<Mesh2d> for AssetId<Mesh>

Source§

fn from(mesh: Mesh2d) -> AssetId<Mesh>

Converts to this type from the input type.
Source§

impl From<Mesh3d> for AssetId<Mesh>

Source§

fn from(mesh: Mesh3d) -> AssetId<Mesh>

Converts to this type from the input type.
Source§

impl From<MeshAssetIdFlat> for AssetId<Mesh>

Source§

fn from(value: MeshAssetIdFlat) -> AssetId<Mesh>

Converts to this type from the input type.
Source§

impl<M> From<MeshMaterial2d<M>> for AssetId<M>
where M: Material2d,

Source§

fn from(material: MeshMaterial2d<M>) -> AssetId<M>

Converts to this type from the input type.
Source§

impl<M> From<MeshMaterial3d<M>> for AssetId<M>
where M: Material,

Source§

fn from(material: MeshMaterial3d<M>) -> AssetId<M>

Converts to this type from the input type.
Source§

impl From<MeshletMesh3d> for AssetId<MeshletMesh>

Source§

fn from(mesh: MeshletMesh3d) -> AssetId<MeshletMesh>

Converts to this type from the input type.
Source§

impl<A> From<Uuid> for AssetId<A>
where A: Asset,

Source§

fn from(value: Uuid) -> AssetId<A>

Converts to this type from the input type.
Source§

impl<A> FromArg for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

type This<'from_arg> = AssetId<A>

The type to convert into. Read more
Source§

fn from_arg(arg: Arg<'_>) -> Result<<AssetId<A> as FromArg>::This<'_>, ArgError>

Creates an item from an argument. Read more
Source§

impl<A> FromReflect for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn from_reflect(__param0: &(dyn PartialReflect + 'static)) -> Option<AssetId<A>>

Constructs a concrete instance of Self from a reflected value.
Source§

fn take_from_reflect( reflect: Box<dyn PartialReflect>, ) -> Result<Self, Box<dyn PartialReflect>>

Attempts to downcast the given value to Self using, constructing the value using from_reflect if that fails. Read more
Source§

impl<A> GetOwnership for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn ownership() -> Ownership

Returns the ownership of Self.
Source§

impl<A> GetTypeRegistration for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn get_type_registration() -> TypeRegistration

Returns the default TypeRegistration for this type.
Source§

fn register_type_dependencies(registry: &mut TypeRegistry)

Registers other types needed by this type. Read more
Source§

impl<A> Hash for AssetId<A>
where A: Asset,

Source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<A> IntoReturn for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn into_return<'into_return>(self) -> Return<'into_return>
where AssetId<A>: 'into_return,

Converts Self into a Return value.
Source§

impl<A> Ord for AssetId<A>
where A: Asset,

Source§

fn cmp(&self, other: &AssetId<A>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<A> PartialEq for AssetId<A>
where A: Asset,

Source§

fn eq(&self, other: &AssetId<A>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A> PartialEq<AssetId<A>> for UntypedAssetId
where A: Asset,

Source§

fn eq(&self, other: &AssetId<A>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A> PartialEq<UntypedAssetId> for AssetId<A>
where A: Asset,

Source§

fn eq(&self, other: &UntypedAssetId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<A> PartialOrd for AssetId<A>
where A: Asset,

Source§

fn partial_cmp(&self, other: &AssetId<A>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<A> PartialOrd<AssetId<A>> for UntypedAssetId
where A: Asset,

Source§

fn partial_cmp(&self, other: &AssetId<A>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<A> PartialOrd<UntypedAssetId> for AssetId<A>
where A: Asset,

Source§

fn partial_cmp(&self, other: &UntypedAssetId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<A> PartialReflect for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn get_represented_type_info(&self) -> Option<&'static TypeInfo>

Returns the TypeInfo of the type represented by this value. Read more
Source§

fn try_apply( &mut self, __value_param: &(dyn PartialReflect + 'static), ) -> Result<(), ApplyError>

Tries to apply a reflected value to this value. Read more
Source§

fn reflect_kind(&self) -> ReflectKind

Returns a zero-sized enumeration of “kinds” of type. Read more
Source§

fn reflect_ref(&self) -> ReflectRef<'_>

Returns an immutable enumeration of “kinds” of type. Read more
Source§

fn reflect_mut(&mut self) -> ReflectMut<'_>

Returns a mutable enumeration of “kinds” of type. Read more
Source§

fn reflect_owned(self: Box<AssetId<A>>) -> ReflectOwned

Returns an owned enumeration of “kinds” of type. Read more
Source§

fn try_into_reflect( self: Box<AssetId<A>>, ) -> Result<Box<dyn Reflect>, Box<dyn PartialReflect>>

Attempts to cast this type to a boxed, fully-reflected value.
Source§

fn try_as_reflect(&self) -> Option<&(dyn Reflect + 'static)>

Attempts to cast this type to a fully-reflected value.
Source§

fn try_as_reflect_mut(&mut self) -> Option<&mut (dyn Reflect + 'static)>

Attempts to cast this type to a mutable, fully-reflected value.
Source§

fn into_partial_reflect(self: Box<AssetId<A>>) -> Box<dyn PartialReflect>

Casts this type to a boxed, reflected value. Read more
Source§

fn as_partial_reflect(&self) -> &(dyn PartialReflect + 'static)

Casts this type to a reflected value. Read more
Source§

fn as_partial_reflect_mut(&mut self) -> &mut (dyn PartialReflect + 'static)

Casts this type to a mutable, reflected value. Read more
Source§

fn reflect_hash(&self) -> Option<u64>

Returns a hash of the value (which includes the type). Read more
Source§

fn reflect_partial_eq( &self, value: &(dyn PartialReflect + 'static), ) -> Option<bool>

Returns a “partial equality” comparison result. Read more
Source§

fn reflect_partial_cmp( &self, value: &(dyn PartialReflect + 'static), ) -> Option<Ordering>

Returns a “partial comparison” result. Read more
Source§

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

Debug formatter for the value. Read more
Source§

fn reflect_clone(&self) -> Result<Box<dyn Reflect>, ReflectCloneError>

Attempts to clone Self using reflection. Read more
Source§

fn apply(&mut self, value: &(dyn PartialReflect + 'static))

Applies a reflected value to this value. Read more
Source§

fn to_dynamic(&self) -> Box<dyn PartialReflect>

Converts this reflected value into its dynamic representation based on its kind. Read more
Source§

fn reflect_clone_and_take<T>(&self) -> Result<T, ReflectCloneError>
where T: 'static, Self: Sized + TypePath,

For a type implementing PartialReflect, combines reflect_clone and take in a useful fashion, automatically constructing an appropriate ReflectCloneError if the downcast fails.
Source§

fn is_dynamic(&self) -> bool

Indicates whether or not this type is a dynamic type. Read more
Source§

impl<A> Reflect for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn into_any(self: Box<AssetId<A>>) -> Box<dyn Any>

Returns the value as a Box<dyn Any>. Read more
Source§

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

Returns the value as a &dyn Any. Read more
Source§

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

Returns the value as a &mut dyn Any. Read more
Source§

fn into_reflect(self: Box<AssetId<A>>) -> Box<dyn Reflect>

Casts this type to a boxed, fully-reflected value.
Source§

fn as_reflect(&self) -> &(dyn Reflect + 'static)

Casts this type to a fully-reflected value.
Source§

fn as_reflect_mut(&mut self) -> &mut (dyn Reflect + 'static)

Casts this type to a mutable, fully-reflected value.
Source§

fn set(&mut self, value: Box<dyn Reflect>) -> Result<(), Box<dyn Reflect>>

Performs a type-checked assignment of a reflected value to this value. Read more
Source§

impl<A> Serialize for AssetId<A>
where A: Asset,

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<A> TryFrom<UntypedAssetId> for AssetId<A>
where A: Asset,

Source§

type Error = UntypedAssetIdConversionError

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

fn try_from( value: UntypedAssetId, ) -> Result<AssetId<A>, <AssetId<A> as TryFrom<UntypedAssetId>>::Error>

Performs the conversion.
Source§

impl<A> TypePath for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn type_path() -> &'static str

Returns the fully qualified path of the underlying type. Read more
Source§

fn short_type_path() -> &'static str

Returns a short, pretty-print enabled path to the type. Read more
Source§

fn type_ident() -> Option<&'static str>

Returns the name of the type, or None if it is anonymous. Read more
Source§

fn crate_name() -> Option<&'static str>

Returns the name of the crate the type is in, or None if it is anonymous. Read more
Source§

fn module_path() -> Option<&'static str>

Returns the path to the module the type is in, or None if it is anonymous. Read more
Source§

impl<A> Typed for AssetId<A>
where A: Asset + TypePath, AssetId<A>: Any + Send + Sync,

Source§

fn type_info() -> &'static TypeInfo

Returns the compile-time info for the underlying type.

Auto Trait Implementations§

§

impl<A> Freeze for AssetId<A>

§

impl<A> RefUnwindSafe for AssetId<A>

§

impl<A> Send for AssetId<A>

§

impl<A> Sync for AssetId<A>

§

impl<A> Unpin for AssetId<A>

§

impl<A> UnsafeUnpin for AssetId<A>

§

impl<A> UnwindSafe for AssetId<A>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> 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 T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> Brush for T
where T: Clone + PartialEq + Default + Debug,

Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Downcast for T
where T: Any,

Source§

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

Converts 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>

Converts 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)

Converts &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)

Converts &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 T
where T: Any,

Source§

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

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.
Source§

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

Convert 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)

Convert &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)

Convert &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> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

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

Source§

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

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<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> DynEq for T
where T: Any + Eq,

Source§

fn dyn_eq(&self, other: &(dyn DynEq + 'static)) -> bool

This method tests for self and other values to be equal. Read more
Source§

impl<T> DynHash for T
where T: DynEq + Hash,

Source§

fn dyn_hash(&self, state: &mut dyn Hasher)

Feeds this value into the given Hasher.
Source§

impl<T> DynamicTypePath for T
where T: TypePath,

Source§

impl<T> DynamicTyped for T
where T: Typed,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> FromTemplate for T
where T: Clone + Default + Unpin,

Source§

type Template = T

The Template for this type.
Source§

impl<T> FromWorld for T
where T: Default,

Source§

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

Creates Self using default().

Source§

impl<T> GetPath for T
where T: Reflect + ?Sized,

Source§

fn reflect_path<'p>( &self, path: impl ReflectPath<'p>, ) -> Result<&(dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a reference to the value specified by path. Read more
Source§

fn reflect_path_mut<'p>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut (dyn PartialReflect + 'static), ReflectPathError<'p>>

Returns a mutable reference to the value specified by path. Read more
Source§

fn path<'p, T>( &self, path: impl ReflectPath<'p>, ) -> Result<&T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed reference to the value specified by path. Read more
Source§

fn path_mut<'p, T>( &mut self, path: impl ReflectPath<'p>, ) -> Result<&mut T, ReflectPathError<'p>>
where T: Reflect,

Returns a statically typed mutable reference to the value specified by path. Read more
Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> HitDataExtra for T
where T: Send + Sync + Debug + Any + 'static,

Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> InitializeFromFunction<T> for T

Source§

fn initialize_from_function(f: fn() -> T) -> T

Create an instance of this type from an initialization function
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 T
where 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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
Source§

impl<N> NodeTrait for N
where N: Copy + Ord + Hash,

Source§

impl<T> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
Source§

impl<G> PatchFromTemplate for G
where G: FromTemplate,

Source§

type Template = <G as FromTemplate>::Template

The Template that will be patched.
Source§

fn patch<F>(func: F) -> TemplatePatch<F, <G as PatchFromTemplate>::Template>
where F: FnOnce(&mut <G as PatchFromTemplate>::Template, &mut ResolveContext<'_>),

Takes a “patch function” func, and turns it into a TemplatePatch.
Source§

impl<T> PatchTemplate for T
where T: Template,

Source§

fn patch_template<F>(func: F) -> TemplatePatch<F, T>
where F: FnOnce(&mut T, &mut ResolveContext<'_>),

Takes a “patch function” func that patches this Template, and turns it into a TemplatePatch.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Reflectable for T

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,

Source§

impl<Ret> SpawnIfAsync<(), Ret> for Ret

Source§

fn spawn(self) -> Ret

Spawn the value into the dioxus runtime if it is an async block
Source§

impl<T, O> SuperFrom<T> for O
where O: From<T>,

Source§

fn super_from(input: T) -> O

Convert from a type to another type.
Source§

impl<T, O, M> SuperInto<O, M> for T
where O: SuperFrom<T, M>,

Source§

fn super_into(self) -> O

Convert from a type to another type.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> Template for T
where T: Clone + Default + Unpin,

Source§

type Output = T

The type of value produced by this Template.
Source§

fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>

Uses this template and the given entity context to produce a Template::Output.
Source§

fn clone_template(&self) -> T

Clones this template. See Clone.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

fn to_sample_(self) -> U

Source§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

impl<T> TypeData for T
where T: 'static + Send + Sync + Clone,

Source§

fn clone_type_data(&self) -> Box<dyn TypeData>

Creates a type-erased clone of this value.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

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