pub struct FileCache { /* private fields */ }Expand description
A cache that tracks file content and returns diffs on re-reads.
Uses kovan-map’s lock-free HashMap — safe for concurrent access from multiple async tasks.
Implementations§
Source§impl FileCache
impl FileCache
Sourcepub fn read_file(&self, path: &str) -> Result<ReadResult>
pub fn read_file(&self, path: &str) -> Result<ReadResult>
Read a file, returning a cache-aware result.
- First read: returns full content (
Fresh). - Subsequent read, unchanged: returns
Unchanged. - Subsequent read, modified: returns a unified diff (
Modified).
Sourcepub fn read_file_range(
&self,
path: &str,
offset: usize,
limit: usize,
) -> Result<ReadResult>
pub fn read_file_range( &self, path: &str, offset: usize, limit: usize, ) -> Result<ReadResult>
Read a range of lines from a file.
offset is 0-based line index, limit is number of lines.
Caching still operates on the full file content.
Sourcepub fn stats(&self) -> CacheStats
pub fn stats(&self) -> CacheStats
Get cache statistics.
Sourcepub fn invalidate(&self, path: &str)
pub fn invalidate(&self, path: &str)
Invalidate a single file entry.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for FileCache
impl !RefUnwindSafe for FileCache
impl Send for FileCache
impl Sync for FileCache
impl Unpin for FileCache
impl UnsafeUnpin for FileCache
impl !UnwindSafe for FileCache
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> 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<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request