pub struct CursorShaderMetadataCache { /* private fields */ }Expand description
Cache for parsed cursor shader metadata.
Avoids re-parsing shader files on every access while still allowing invalidation for hot reload scenarios.
Implementations§
Source§impl CursorShaderMetadataCache
impl CursorShaderMetadataCache
Sourcepub fn new() -> CursorShaderMetadataCache
pub fn new() -> CursorShaderMetadataCache
Create a new empty metadata cache.
Sourcepub fn with_shaders_dir(shaders_dir: PathBuf) -> CursorShaderMetadataCache
pub fn with_shaders_dir(shaders_dir: PathBuf) -> CursorShaderMetadataCache
Create a new metadata cache with a specific shaders directory.
Sourcepub fn set_shaders_dir(&mut self, shaders_dir: PathBuf)
pub fn set_shaders_dir(&mut self, shaders_dir: PathBuf)
Set the shaders directory path.
Sourcepub fn get(&mut self, shader_name: &str) -> Option<&CursorShaderMetadata>
pub fn get(&mut self, shader_name: &str) -> Option<&CursorShaderMetadata>
Sourcepub fn get_fresh(&self, shader_name: &str) -> Option<CursorShaderMetadata>
pub fn get_fresh(&self, shader_name: &str) -> Option<CursorShaderMetadata>
Get metadata without caching (always reads from disk).
Useful for hot reload scenarios where you want fresh data.
Sourcepub fn invalidate(&mut self, shader_name: &str)
pub fn invalidate(&mut self, shader_name: &str)
Invalidate cached metadata for a specific shader.
Call this when a shader file has been modified (hot reload).
Sourcepub fn invalidate_all(&mut self)
pub fn invalidate_all(&mut self)
Invalidate all cached metadata.
Call this when the shaders directory might have changed.
Sourcepub fn cache_size(&self) -> usize
pub fn cache_size(&self) -> usize
Get the number of cached entries.
Trait Implementations§
Source§impl Debug for CursorShaderMetadataCache
impl Debug for CursorShaderMetadataCache
Source§impl Default for CursorShaderMetadataCache
impl Default for CursorShaderMetadataCache
Source§fn default() -> CursorShaderMetadataCache
fn default() -> CursorShaderMetadataCache
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for CursorShaderMetadataCache
impl RefUnwindSafe for CursorShaderMetadataCache
impl Send for CursorShaderMetadataCache
impl Sync for CursorShaderMetadataCache
impl Unpin for CursorShaderMetadataCache
impl UnsafeUnpin for CursorShaderMetadataCache
impl UnwindSafe for CursorShaderMetadataCache
Blanket Implementations§
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<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> 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> 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<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> Pointable for T
impl<T> Pointable for T
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().