Skip to main content

RenderAssets

Struct RenderAssets 

Source
pub struct RenderAssets<A>(/* private fields */)
where
    A: RenderAsset;
Available on crate feature bevy_render only.
Expand description

Stores all GPU representations (RenderAsset) of RenderAsset::SourceAsset as long as they exist.

Implementations§

Source§

impl<A> RenderAssets<A>
where A: RenderAsset,

Source

pub fn get( &self, id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>, ) -> Option<&A>

Examples found in repository?
examples/shader/gpu_readback.rs (line 170)
160fn prepare_bind_group(
161    mut commands: Commands,
162    pipeline: Res<ComputePipeline>,
163    render_device: Res<RenderDevice>,
164    pipeline_cache: Res<PipelineCache>,
165    buffer: Res<ReadbackBuffer>,
166    image: Res<ReadbackImage>,
167    buffers: Res<RenderAssets<GpuShaderBuffer>>,
168    images: Res<RenderAssets<GpuImage>>,
169) {
170    let buffer = buffers.get(&buffer.0).unwrap();
171    let image = images.get(&image.0).unwrap();
172    let bind_group = render_device.create_bind_group(
173        None,
174        &pipeline_cache.get_bind_group_layout(&pipeline.layout),
175        &BindGroupEntries::sequential((
176            buffer.buffer.as_entire_buffer_binding(),
177            image.texture_view.into_binding(),
178        )),
179    );
180    commands.insert_resource(GpuBufferBindGroup(bind_group));
181}
More examples
Hide additional examples
examples/shader/compute_shader_game_of_life.rs (line 140)
130fn prepare_bind_group(
131    mut commands: Commands,
132    pipeline: Res<GameOfLifePipeline>,
133    gpu_images: Res<RenderAssets<GpuImage>>,
134    game_of_life_images: Res<GameOfLifeImages>,
135    game_of_life_uniforms: Res<GameOfLifeUniforms>,
136    render_device: Res<RenderDevice>,
137    pipeline_cache: Res<PipelineCache>,
138    queue: Res<RenderQueue>,
139) {
140    let view_a = gpu_images.get(&game_of_life_images.texture_a).unwrap();
141    let view_b = gpu_images.get(&game_of_life_images.texture_b).unwrap();
142
143    // Uniform buffer is used here to demonstrate how to set up a uniform in a compute shader
144    // Alternatives such as storage buffers or push constants may be more suitable for your use case
145    let mut uniform_buffer = UniformBuffer::from(game_of_life_uniforms.into_inner());
146    uniform_buffer.write_buffer(&render_device, &queue);
147
148    let bind_group_0 = render_device.create_bind_group(
149        None,
150        &pipeline_cache.get_bind_group_layout(&pipeline.texture_bind_group_layout),
151        &BindGroupEntries::sequential((
152            &view_a.texture_view,
153            &view_b.texture_view,
154            &uniform_buffer,
155        )),
156    );
157    let bind_group_1 = render_device.create_bind_group(
158        None,
159        &pipeline_cache.get_bind_group_layout(&pipeline.texture_bind_group_layout),
160        &BindGroupEntries::sequential((
161            &view_b.texture_view,
162            &view_a.texture_view,
163            &uniform_buffer,
164        )),
165    );
166    commands.insert_resource(GameOfLifeImageBindGroups([bind_group_0, bind_group_1]));
167}
examples/shader_advanced/texture_binding_array.rs (line 118)
105    fn as_bind_group(
106        &self,
107        layout: &BindGroupLayoutDescriptor,
108        render_device: &RenderDevice,
109        pipeline_cache: &PipelineCache,
110        _: &FallbackBuffer,
111        shader_buffer_assets: &RenderAssets<GpuShaderBuffer>,
112        (image_assets, fallback_image): &mut SystemParamItem<'_, '_, Self::Param>,
113    ) -> Result<PreparedBindGroup, AsBindGroupError> {
114        let _ = shader_buffer_assets;
115        // retrieve the render resources from handles
116        let mut images = vec![];
117        for handle in self.textures.iter().take(MAX_TEXTURE_COUNT) {
118            match image_assets.get(handle) {
119                Some(image) => images.push(image),
120                None => return Err(AsBindGroupError::RetryNextUpdate),
121            }
122        }
123
124        let fallback_image = &fallback_image.d2;
125
126        let textures = vec![&fallback_image.texture_view; MAX_TEXTURE_COUNT];
127
128        // convert bevy's resource types to WGPU's references
129        let mut textures: Vec<_> = textures.into_iter().map(|texture| &**texture).collect();
130
131        // fill in up to the first `MAX_TEXTURE_COUNT` textures and samplers to the arrays
132        for (id, image) in images.into_iter().enumerate() {
133            textures[id] = &*image.texture_view;
134        }
135
136        let bind_group = render_device.create_bind_group(
137            Self::label(),
138            &pipeline_cache.get_bind_group_layout(layout),
139            &BindGroupEntries::sequential((&textures[..], &fallback_image.sampler)),
140        );
141
142        Ok(PreparedBindGroup {
143            bindings: BindingResources(vec![]),
144            bind_group,
145        })
146    }
examples/shader_advanced/render_depth_to_texture.rs (line 147)
127fn copy_depth_texture_system(
128    view: ViewQuery<(&ExtractedCamera, &ViewDepthStencilTexture)>,
129    demo_depth_texture: Option<Res<DemoDepthTexture>>,
130    image_assets: Res<RenderAssets<GpuImage>>,
131    mut ctx: RenderContext,
132) {
133    let Some(demo_depth_texture) = demo_depth_texture else {
134        return;
135    };
136
137    let (camera, depth_texture) = view.into_inner();
138
139    // Make sure we only run on the depth-only camera.
140    // We could make a marker component for that camera and extract it to
141    // the render world, but using `order` as a tag to tell the main camera
142    // and the depth-only camera apart works in a pinch.
143    if camera.order >= 0 {
144        return;
145    }
146
147    let Some(demo_depth_image) = image_assets.get(demo_depth_texture.0.id()) else {
148        return;
149    };
150
151    let command_encoder = ctx.command_encoder();
152    command_encoder.push_debug_group("copy depth to demo texture");
153    command_encoder.copy_texture_to_texture(
154        // Aspect for `copy_texture_to_texture` should refer to all aspect.
155        // See <https://gpuweb.github.io/gpuweb/#dom-gpucommandencoder-copytexturetotexture>
156        TexelCopyTextureInfo {
157            texture: depth_texture.texture(),
158            mip_level: 0,
159            origin: Origin3d::default(),
160            aspect: TextureAspect::All,
161        },
162        TexelCopyTextureInfo {
163            texture: &demo_depth_image.texture,
164            mip_level: 0,
165            origin: Origin3d::default(),
166            aspect: TextureAspect::All,
167        },
168        Extent3d {
169            width: DEPTH_TEXTURE_SIZE,
170            height: DEPTH_TEXTURE_SIZE,
171            depth_or_array_layers: 1,
172        },
173    );
174    command_encoder.pop_debug_group();
175}
examples/app/headless_renderer.rs (line 334)
323fn image_copy_driver(
324    render_context: RenderContext,
325    image_copiers: Res<ImageCopiers>,
326    render_queue: Res<RenderQueue>,
327    gpu_images: Res<RenderAssets<bevy::render::texture::GpuImage>>,
328) {
329    for image_copier in image_copiers.iter() {
330        if !image_copier.enabled() {
331            continue;
332        }
333
334        let src_image = gpu_images.get(&image_copier.src_image).unwrap();
335
336        let mut encoder = render_context
337            .render_device()
338            .create_command_encoder(&CommandEncoderDescriptor::default());
339
340        let block_dimensions = src_image.texture_descriptor.format.block_dimensions();
341        let block_size = src_image
342            .texture_descriptor
343            .format
344            .block_copy_size(None)
345            .unwrap();
346
347        // Calculating correct size of image row because
348        // copy_texture_to_buffer can copy image only by rows aligned wgpu::COPY_BYTES_PER_ROW_ALIGNMENT
349        // That's why image in buffer can be little bit wider
350        // This should be taken into account at copy from buffer stage
351        let padded_bytes_per_row = RenderDevice::align_copy_bytes_per_row(
352            (src_image.texture_descriptor.size.width as usize / block_dimensions.0 as usize)
353                * block_size as usize,
354        );
355
356        encoder.copy_texture_to_buffer(
357            src_image.texture.as_image_copy(),
358            TexelCopyBufferInfo {
359                buffer: &image_copier.buffer,
360                layout: TexelCopyBufferLayout {
361                    offset: 0,
362                    bytes_per_row: Some(
363                        std::num::NonZero::<u32>::new(padded_bytes_per_row as u32)
364                            .unwrap()
365                            .into(),
366                    ),
367                    rows_per_image: None,
368                },
369            },
370            src_image.texture_descriptor.size,
371        );
372
373        render_queue.submit(std::iter::once(encoder.finish()));
374    }
375}
examples/shader_advanced/manual_material.rs (line 165)
147    fn prepare_asset(
148        source_asset: Self::SourceAsset,
149        asset_id: AssetId<Self::SourceAsset>,
150        (
151            opaque_draw_functions,
152            material_layout,
153            asset_server,
154            bind_group_allocators,
155            render_material_bindings,
156            gpu_images,
157            image_material_sampler,
158        ): &mut SystemParamItem<Self::Param>,
159    ) -> std::result::Result<Self::ErasedAsset, PrepareAssetError<Self::SourceAsset>> {
160        let material_layout = material_layout.0.clone();
161        let draw_function_id = opaque_draw_functions.read().id::<DrawMaterial>();
162        let bind_group_allocator = bind_group_allocators
163            .get_mut(&TypeId::of::<ImageMaterial>())
164            .unwrap();
165        let Some(image) = gpu_images.get(&source_asset.image) else {
166            return Err(PrepareAssetError::RetryNextUpdate(source_asset));
167        };
168        let mut unprepared = BindGroupBuilder {
169            binding_resources: UnpreparedBindingResources(vec![
170                (
171                    0,
172                    UnpreparedBindingResource::TextureView(
173                        TextureViewDimension::D2,
174                        image.texture_view.clone(),
175                    ),
176                ),
177                (
178                    1,
179                    UnpreparedBindingResource::Sampler(
180                        SamplerBindingType::NonFiltering,
181                        image_material_sampler.0.clone(),
182                    ),
183                ),
184            ]),
185            data_buffer: vec![],
186        };
187        let binding = match render_material_bindings.entry(asset_id.into()) {
188            Entry::Occupied(mut occupied_entry) => {
189                bind_group_allocator.free(*occupied_entry.get());
190                let new_binding =
191                    bind_group_allocator.allocate_unprepared(&mut unprepared, &material_layout);
192                *occupied_entry.get_mut() = new_binding;
193                new_binding
194            }
195            Entry::Vacant(vacant_entry) => *vacant_entry.insert(
196                bind_group_allocator.allocate_unprepared(&mut unprepared, &material_layout),
197            ),
198        };
199
200        let mut properties = MaterialProperties {
201            material_layout: Some(material_layout),
202            mesh_pipeline_key_bits: ErasedMeshPipelineKey::new(MeshPipelineKey::empty()),
203            base_specialize: Some(base_specialize),
204            ..Default::default()
205        };
206        properties.add_draw_function(MainPassOpaqueDrawFunction, draw_function_id);
207        properties.add_shader(MaterialFragmentShader, asset_server.load(SHADER_ASSET_PATH));
208
209        Ok(PreparedMaterial {
210            binding,
211            properties: Arc::new(properties),
212        })
213    }
Source

pub fn get_mut( &mut self, id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>, ) -> Option<&mut A>

Source

pub fn insert( &mut self, id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>, value: A, ) -> Option<A>

Source

pub fn remove( &mut self, id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>, ) -> Option<A>

Source

pub fn iter( &self, ) -> impl Iterator<Item = (AssetId<<A as RenderAsset>::SourceAsset>, &A)>

Source

pub fn iter_mut( &mut self, ) -> impl Iterator<Item = (AssetId<<A as RenderAsset>::SourceAsset>, &mut A)>

Trait Implementations§

Source§

impl<A> Component for RenderAssets<A>
where A: RenderAsset, RenderAssets<A>: Send + Sync + 'static,

Source§

const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet

A constant indicating the storage type used for this component.
Source§

type Mutability = Mutable

A marker type to assist Bevy with determining if this component is mutable, or immutable. Mutable components will have Component<Mutability = Mutable>, while immutable components will instead have Component<Mutability = Immutable>. Read more
Source§

fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )

Registers required components. Read more
Source§

fn clone_behavior() -> ComponentCloneBehavior

Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§

fn relationship_accessor() -> Option<ComponentRelationshipAccessor<RenderAssets<A>>>

Returns ComponentRelationshipAccessor required for working with relationships in dynamic contexts. Read more
Source§

fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_add ComponentHook for this Component if one is defined.
Source§

fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_insert ComponentHook for this Component if one is defined.
Source§

fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_discard ComponentHook for this Component if one is defined.
Source§

fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_remove ComponentHook for this Component if one is defined.
Source§

fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_despawn ComponentHook for this Component if one is defined.
Source§

fn map_entities<E>(_this: &mut Self, _mapper: &mut E)
where E: EntityMapper,

Maps the entities on this component using the given EntityMapper. This is used to remap entities in contexts like scenes and entity cloning. When deriving Component, this is populated by annotating fields containing entities with #[entities] Read more
Source§

const HAS_SUMMARY_TICK: bool = false

Set this constant to true if the component should track a summary tick. Read more
Source§

impl<A> Default for RenderAssets<A>
where A: RenderAsset,

Source§

fn default() -> RenderAssets<A>

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

impl<A> Resource for RenderAssets<A>
where A: RenderAsset, RenderAssets<A>: Send + Sync + 'static,

Auto Trait Implementations§

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<C> Bundle for C
where C: Component,

Source§

fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>

Source§

fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>

Returns an iterator over this Bundle’s component ids. This will be None if the component has not been registered.
Source§

impl<C> BundleFromComponents for C
where C: Component,

Source§

unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
where F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a>, C: Sized,

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> 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> 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<C> DynamicBundle for C
where C: Component,

Source§

type Effect = ()

An operation on the entity that happens after inserting this bundle.
Source§

unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect

Moves the components out of the bundle. Read more
Source§

unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )

Applies the after-effects of spawning this bundle. 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> FromWorld for T
where T: Default,

Source§

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

Creates Self using default().

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> 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<T> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<C> SceneEffect for C
where C: Component,

Source§

fn apply( self, context: &mut TemplateContext<'_, '_>, bundle_writer: &mut BundleWriter<'_>, )

Applies the scene effect to the current context.
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, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

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 = !

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

fn try_from(value: U) -> Result<T, !>

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