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,
impl<A> RenderAssets<A>where
A: RenderAsset,
Sourcepub fn get(
&self,
id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>,
) -> Option<&A>
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
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 }pub fn get_mut( &mut self, id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>, ) -> Option<&mut A>
pub fn insert( &mut self, id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>, value: A, ) -> Option<A>
pub fn remove( &mut self, id: impl Into<AssetId<<A as RenderAsset>::SourceAsset>>, ) -> Option<A>
pub fn iter( &self, ) -> impl Iterator<Item = (AssetId<<A as RenderAsset>::SourceAsset>, &A)>
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>
impl<A> Component for RenderAssets<A>
Source§const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::SparseSet
A constant indicating the storage type used for this component.
Source§type Mutability = Mutable
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 moreSource§fn register_required_components(
_requiree: ComponentId,
required_components: &mut RequiredComponentsRegistrator<'_, '_>,
)
fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )
Registers required components. Read more
Source§fn clone_behavior() -> ComponentCloneBehavior
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>>>
fn relationship_accessor() -> Option<ComponentRelationshipAccessor<RenderAssets<A>>>
Returns
ComponentRelationshipAccessor required for working with relationships in dynamic contexts. Read moreSource§fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_discard() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>
Source§fn map_entities<E>(_this: &mut Self, _mapper: &mut E)where
E: EntityMapper,
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 moreSource§const HAS_SUMMARY_TICK: bool = false
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,
impl<A> Default for RenderAssets<A>where
A: RenderAsset,
Source§fn default() -> RenderAssets<A>
fn default() -> RenderAssets<A>
Returns the “default value” for a type. Read more
impl<A> Resource for RenderAssets<A>
Auto Trait Implementations§
impl<A> Freeze for RenderAssets<A>
impl<A> RefUnwindSafe for RenderAssets<A>
impl<A> Send for RenderAssets<A>
impl<A> Sync for RenderAssets<A>
impl<A> Unpin for RenderAssets<A>
impl<A> UnsafeUnpin for RenderAssets<A>
impl<A> UnwindSafe for RenderAssets<A>
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<C> Bundle for Cwhere
C: Component,
impl<C> Bundle for Cwhere
C: Component,
fn component_ids( components: &mut ComponentsRegistrator<'_>, ) -> impl Iterator<Item = ComponentId> + use<C>
Source§fn get_component_ids(
components: &Components,
) -> impl Iterator<Item = Option<ComponentId>>
fn get_component_ids( components: &Components, ) -> impl Iterator<Item = Option<ComponentId>>
Source§impl<C> BundleFromComponents for Cwhere
C: Component,
impl<C> BundleFromComponents for Cwhere
C: Component,
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ConditionalSend for Twhere
T: Send,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
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>
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)
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)
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 Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
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>
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)
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)
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
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<C> DynamicBundle for Cwhere
C: Component,
impl<C> DynamicBundle for Cwhere
C: Component,
Source§unsafe fn get_components(
ptr: MovingPtr<'_, C>,
func: &mut impl FnMut(StorageType, OwningPtr<'_>),
) -> <C as DynamicBundle>::Effect
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<'_>,
)
unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )
Applies the after-effects of spawning this bundle. Read more
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
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,
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,
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,
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,
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,
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,
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,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
Source§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
Create an instance of this type from an initialization function
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Converts this type into the system output type.
Source§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
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) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
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§impl<C> SceneEffect for Cwhere
C: Component,
impl<C> SceneEffect for Cwhere
C: Component,
Source§fn apply(
self,
context: &mut TemplateContext<'_, '_>,
bundle_writer: &mut BundleWriter<'_>,
)
fn apply( self, context: &mut TemplateContext<'_, '_>, bundle_writer: &mut BundleWriter<'_>, )
Applies the scene effect to the current context.
impl<T> Settings for T
Source§impl<Ret> SpawnIfAsync<(), Ret> for Ret
impl<Ret> SpawnIfAsync<(), Ret> for Ret
Source§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
Source§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Convert from a type to another type.
Source§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
Source§fn super_into(self) -> O
fn super_into(self) -> O
Convert from a type to another type.
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
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
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
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
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
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
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
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.