Struct sierra::ImageViewCache
source · pub struct ImageViewCache { /* private fields */ }
Expand description
Cache for image views
This cache uses eviction strategy of ResourceCache
.
But has convenience methods for fetching image views.
Implementations§
source§impl ImageViewCache
impl ImageViewCache
sourcepub fn with_capacity(cap: usize) -> Self
pub fn with_capacity(cap: usize) -> Self
Creates a new cache with preallocated resource capacity.
sourcepub fn fetch_image(&mut self, image: &Image) -> Option<&ImageView>
pub fn fetch_image(&mut self, image: &Image) -> Option<&ImageView>
Fetches image view for specified image.
Returns None
if image is not in cache.
Returns Some
if image is in cache.
sourcepub fn fetch_image_view(&mut self, info: &ImageViewInfo) -> Option<&ImageView>
pub fn fetch_image_view(&mut self, info: &ImageViewInfo) -> Option<&ImageView>
Fetches image view for specified image.
Returns None
if image is not in cache.
Returns Some
if image is in cache.
sourcepub fn make_image(
&mut self,
image: &Image,
device: &Device
) -> Result<&ImageView, OutOfMemory>
pub fn make_image(
&mut self,
image: &Image,
device: &Device
) -> Result<&ImageView, OutOfMemory>
Fetches image view for specified image.
Returns None
if image is not in cache.
Returns Some
if image is in cache.
sourcepub fn make_image_view(
&mut self,
info: &ImageViewInfo,
device: &Device
) -> Result<&ImageView, OutOfMemory>
pub fn make_image_view(
&mut self,
info: &ImageViewInfo,
device: &Device
) -> Result<&ImageView, OutOfMemory>
Fetches image view for specified image view info.
Returns None
if image is not in cache.
Returns Some
if image is in cache.
Methods from Deref<Target = ResourceCache<ImageView>>§
sourcepub fn fetch<F>(&mut self, eq: F) -> Option<&T>where
F: Fn(&T) -> bool,
pub fn fetch<F>(&mut self, eq: F) -> Option<&T>where
F: Fn(&T) -> bool,
Fetches resource from cache.
Resource last used epoch is updated to the current epoch.
Returns None
if resource is not in cache.
Returns Some
if resource is in cache.
sourcepub fn get<Q>(&mut self, key: &Q) -> Option<&T>where
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
pub fn get<Q>(&mut self, key: &Q) -> Option<&T>where
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
Fetches resource from cache.
Resource last used epoch is updated to the current epoch.
Returns None
if resource is not in cache.
Returns Some
if resource is in cache.
sourcepub fn fetch_no_update<F>(&self, eq: F) -> Option<&T>where
F: Fn(&T) -> bool,
pub fn fetch_no_update<F>(&self, eq: F) -> Option<&T>where
F: Fn(&T) -> bool,
Fetches resource from cache.
Resource last used epoch is not updated.
This is useful when only shared reference to cache is available.
Returns None
if resource is not in cache.
Returns Some
if resource is in cache.
sourcepub fn get_no_update<Q>(&self, key: &Q) -> Option<&T>where
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
pub fn get_no_update<Q>(&self, key: &Q) -> Option<&T>where
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
Fetches resource from cache.
Resource last used epoch is not updated.
This is useful when only shared reference to cache is available.
Returns None
if resource is not in cache.
Returns Some
if resource is in cache.
sourcepub fn try_fetch_or_create<K, F, E>(&mut self, eq: K, create: F) -> Result<&T, E>where
K: Fn(&T) -> bool,
F: FnOnce() -> Result<T, E>,
pub fn try_fetch_or_create<K, F, E>(&mut self, eq: K, create: F) -> Result<&T, E>where
K: Fn(&T) -> bool,
F: FnOnce() -> Result<T, E>,
Fetches resource from cache. Resource last used epoch is updated to the current epoch. If resource is not in cache, it is created and added to the cache. Returns a reference to the resource. Returns error if resource is not in cache and create function fails.
sourcepub fn fetch_or_create<E, F>(&mut self, eq: E, create: F) -> &Twhere
E: Fn(&T) -> bool,
F: FnOnce() -> T,
pub fn fetch_or_create<E, F>(&mut self, eq: E, create: F) -> &Twhere
E: Fn(&T) -> bool,
F: FnOnce() -> T,
Fetches resource from cache. Resource last used epoch is updated to the current epoch. If resource is not in cache, it is created and added to the cache. Returns a reference to the resource.
sourcepub fn try_get_or_create<Q, F, E>(&mut self, key: &Q, create: F) -> Result<&T, E>where
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
F: FnOnce() -> Result<T, E>,
pub fn try_get_or_create<Q, F, E>(&mut self, key: &Q, create: F) -> Result<&T, E>where
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
F: FnOnce() -> Result<T, E>,
Fetches resource from cache. Resource last used epoch is updated to the current epoch. If resource is not in cache, it is created and added to the cache. Returns a reference to the resource.
sourcepub fn get_or_create<Q, F>(&mut self, key: &Q, create: F) -> &Twhere
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
F: FnOnce() -> T,
pub fn get_or_create<Q, F>(&mut self, key: &Q, create: F) -> &Twhere
T: Borrow<Q>,
Q: ?Sized + Hash + Eq,
F: FnOnce() -> T,
Fetches resource from cache. Resource last used epoch is updated to the current epoch. If resource is not in cache, it is created and added to the cache. Returns a reference to the resource.
sourcepub fn next_epoch(&mut self)
pub fn next_epoch(&mut self)
Moves to the next epoch.