pub struct ScriptCache { /* private fields */ }Expand description
Shard cache keyed by canonical script path. One per shard file.
Implementations§
Source§impl ScriptCache
impl ScriptCache
Sourcepub fn open(path: &Path) -> Result<Self>
pub fn open(path: &Path) -> Result<Self>
Open (or prepare) the cache rooted at path. The file does not need to
exist yet — it will be created on the first put.
Sourcepub fn get(
&self,
path: &str,
mtime_secs: i64,
mtime_nsecs: i64,
) -> Option<CachedScript>
pub fn get( &self, path: &str, mtime_secs: i64, mtime_nsecs: i64, ) -> Option<CachedScript>
Cache lookup. Returns None on miss, mtime mismatch, version drift, or
stryke-binary newer than the cached entry.
Sourcepub fn put(
&self,
path: &str,
mtime_secs: i64,
mtime_nsecs: i64,
program: &Program,
chunk: &Chunk,
) -> PerlResult<()>
pub fn put( &self, path: &str, mtime_secs: i64, mtime_nsecs: i64, program: &Program, chunk: &Chunk, ) -> PerlResult<()>
Insert / replace an entry. Serializes the whole shard and atomic-renames.
Sourcepub fn list_scripts(&self) -> Vec<(String, f64, f64, String, String)>
pub fn list_scripts(&self) -> Vec<(String, f64, f64, String, String)>
(path, program_kb, chunk_kb, version, cached_at_localstr) per entry,
sorted by cached_at desc.
Sourcepub fn evict_stale(&self) -> usize
pub fn evict_stale(&self) -> usize
Drop entries whose source file vanished or whose mtime changed. Returns number of entries evicted.
Auto Trait Implementations§
impl !Freeze for ScriptCache
impl !RefUnwindSafe for ScriptCache
impl Send for ScriptCache
impl Sync for ScriptCache
impl Unpin for ScriptCache
impl UnsafeUnpin for ScriptCache
impl UnwindSafe for ScriptCache
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
Source§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
Convert this type into
T, using the provided data to resolve any offsets.