pub struct Cache<'w> { /* private fields */ }Expand description
Combined system parameter for the cache manifest and config resources.
This removes the need to request both ResMut<CacheManifest> and
Res<CacheConfig> in every system that interacts with the cache.
use bevy::prelude::*;
use bevy_cache::prelude::*;
fn cache_screenshot(
mut cache: Cache,
asset_server: Res<AssetServer>,
) {
cache
.store(
"screenshots/title",
"png",
std::io::Cursor::new(vec![1, 2, 3]),
None,
)
.expect("cache write failed");
let _handle: Handle<Image> = cache
.load_cached(&asset_server, "screenshots/title")
.expect("cache load failed");
}Implementations§
Source§impl<'w> Cache<'w>
impl<'w> Cache<'w>
Sourcepub fn config(&self) -> &CacheConfig
pub fn config(&self) -> &CacheConfig
Returns the cache configuration resource.
Sourcepub fn manifest(&self) -> &CacheManifest
pub fn manifest(&self) -> &CacheManifest
Returns the cache manifest resource.
Sourcepub fn manifest_mut(&mut self) -> &mut CacheManifest
pub fn manifest_mut(&mut self) -> &mut CacheManifest
Returns the cache manifest resource mutably.
Sourcepub fn store<R: Read>(
&mut self,
key: &str,
extension: &str,
reader: R,
max_age: Option<Duration>,
) -> Result<(), CacheError>
pub fn store<R: Read>( &mut self, key: &str, extension: &str, reader: R, max_age: Option<Duration>, ) -> Result<(), CacheError>
Store data in the cache under key using the given file extension.
Sourcepub fn remove(&mut self, key: &str) -> Result<(), CacheError>
pub fn remove(&mut self, key: &str) -> Result<(), CacheError>
Remove a cache entry and its backing file from disk.
Sourcepub fn get(&self, key: &str) -> Option<&CacheEntry>
pub fn get(&self, key: &str) -> Option<&CacheEntry>
Get a manifest entry by key.
Sourcepub fn asset_path(&self, key: &str) -> Option<String>
pub fn asset_path(&self, key: &str) -> Option<String>
Return the cache:// asset path for key, if present.
Sourcepub fn is_cached(&self, key: &str) -> bool
pub fn is_cached(&self, key: &str) -> bool
Check whether the cached file for key still exists on disk.
Sourcepub fn total_size_bytes(&self) -> u64
pub fn total_size_bytes(&self) -> u64
Returns the total manifest-reported size of cached data in bytes.
Sourcepub fn load<A: Asset>(
&self,
asset_server: &AssetServer,
key: &str,
) -> Option<Handle<A>>
pub fn load<A: Asset>( &self, asset_server: &AssetServer, key: &str, ) -> Option<Handle<A>>
Load a cached asset path through the provided AssetServer.
This returns None when the key does not exist in the manifest.
Sourcepub fn load_cached<A: Asset>(
&self,
asset_server: &AssetServer,
key: &str,
) -> Result<Handle<A>, CacheError>
pub fn load_cached<A: Asset>( &self, asset_server: &AssetServer, key: &str, ) -> Result<Handle<A>, CacheError>
Load a cached asset through the provided AssetServer, returning an
error when the manifest entry is missing or stale.
Trait Implementations§
Source§impl SystemParam for Cache<'_>
impl SystemParam for Cache<'_>
Source§type Item<'w, 's> = Cache<'w>
type Item<'w, 's> = Cache<'w>
Self, instantiated with new lifetimes. Read moreSource§fn init_access(
state: &Self::State,
system_meta: &mut SystemMeta,
component_access_set: &mut FilteredAccessSet,
world: &mut World,
)
fn init_access( state: &Self::State, system_meta: &mut SystemMeta, component_access_set: &mut FilteredAccessSet, world: &mut World, )
World access used by this SystemParamSource§fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)
SystemParam’s state.
This is used to apply Commands during ApplyDeferred.Source§fn queue(
state: &mut Self::State,
system_meta: &SystemMeta,
world: DeferredWorld<'_>,
)
fn queue( state: &mut Self::State, system_meta: &SystemMeta, world: DeferredWorld<'_>, )
ApplyDeferred.Source§unsafe fn validate_param<'w, 's>(
state: &'s mut Self::State,
_system_meta: &SystemMeta,
_world: UnsafeWorldCell<'w>,
) -> Result<(), SystemParamValidationError>
unsafe fn validate_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, ) -> Result<(), SystemParamValidationError>
Source§unsafe fn get_param<'w, 's>(
state: &'s mut Self::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick,
) -> Self::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick, ) -> Self::Item<'w, 's>
SystemParamFunction. Read moreimpl<'w, 's> ReadOnlySystemParam for Cache<'w>
Auto Trait Implementations§
impl<'w> Freeze for Cache<'w>
impl<'w> RefUnwindSafe for Cache<'w>
impl<'w> Send for Cache<'w>
impl<'w> Sync for Cache<'w>
impl<'w> Unpin for Cache<'w>
impl<'w> UnsafeUnpin for Cache<'w>
impl<'w> !UnwindSafe for Cache<'w>
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
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
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>
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>
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)
&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)
&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>
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>
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)
&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)
&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
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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> 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>
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>
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