pub struct ShaderMetadataCache { /* private fields */ }Expand description
Cache for parsed shader metadata.
Avoids re-parsing shader files on every access while still allowing invalidation for hot reload scenarios.
Implementations§
Source§impl ShaderMetadataCache
impl ShaderMetadataCache
Sourcepub fn new() -> ShaderMetadataCache
pub fn new() -> ShaderMetadataCache
Create a new empty metadata cache.
Sourcepub fn with_shaders_dir(shaders_dir: PathBuf) -> ShaderMetadataCache
pub fn with_shaders_dir(shaders_dir: PathBuf) -> ShaderMetadataCache
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<&ShaderMetadata>
pub fn get(&mut self, shader_name: &str) -> Option<&ShaderMetadata>
Sourcepub fn get_fresh(&self, shader_name: &str) -> Option<ShaderMetadata>
pub fn get_fresh(&self, shader_name: &str) -> Option<ShaderMetadata>
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 ShaderMetadataCache
impl Debug for ShaderMetadataCache
Source§impl Default for ShaderMetadataCache
impl Default for ShaderMetadataCache
Source§fn default() -> ShaderMetadataCache
fn default() -> ShaderMetadataCache
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ShaderMetadataCache
impl RefUnwindSafe for ShaderMetadataCache
impl Send for ShaderMetadataCache
impl Sync for ShaderMetadataCache
impl Unpin for ShaderMetadataCache
impl UnsafeUnpin for ShaderMetadataCache
impl UnwindSafe for ShaderMetadataCache
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().