pub struct WorkCache {
entries: Mutex<HashMap<SessionSlot, Entry>>,
}Expand description
Each session’s working tree, so a caller reads a value instead of
spawning git per row per render.
Fields§
§entries: Mutex<HashMap<SessionSlot, Entry>>Implementations§
Source§impl WorkCache
impl WorkCache
pub fn new() -> Self
Sourcepub async fn snapshot(&self, slot: &SessionSlot, cwd: &Path) -> WorkState
pub async fn snapshot(&self, slot: &SessionSlot, cwd: &Path) -> WorkState
cwd as an agent’s working tree, at most REFRESH_INTERVAL old.
A read outside the window goes to git; one inside answers from the
cache. A moved cwd - a /new, a worktree - is a different tree and
is read afresh.
Sourcefn entries(&self) -> MutexGuard<'_, HashMap<SessionSlot, Entry>>
fn entries(&self) -> MutexGuard<'_, HashMap<SessionSlot, Entry>>
A panicking task must not take the cache with it: the map holds no invariant a panic can break.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for WorkCache
impl RefUnwindSafe for WorkCache
impl Send for WorkCache
impl Sync for WorkCache
impl Unpin for WorkCache
impl UnsafeUnpin for WorkCache
impl UnwindSafe for WorkCache
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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 more