pub struct WorktreesRegistry { /* private fields */ }Expand description
The cross-window worktree registry: the in-memory, TTL-reaped set of open
windows. Hosted by
WorktreesService.
Implementations§
Source§impl WorktreesRegistry
impl WorktreesRegistry
Sourcepub fn register(&self, req: RegisterRequest)
pub fn register(&self, req: RegisterRequest)
Records (upserts) a window registration. Reaps stale entries first, then
— only when a genuinely new key would grow the map past [MAX_WINDOWS] —
evicts the longest-silent entry. Infallible: an upsert never evicts, and
callers validate the key before reaching here.
Sourcepub fn heartbeat(&self, key: &str) -> bool
pub fn heartbeat(&self, key: &str) -> bool
Refreshes a window’s liveness. Returns whether the key was known: a
false tells a window that started before the daemon — or survived a
daemon restart — to re-register, since the registry is in-memory and
has no record of it.
Sourcepub fn unregister(&self, key: &str) -> bool
pub fn unregister(&self, key: &str) -> bool
Drops a window’s registration. Returns whether an entry was present.
Sourcepub fn list(&self) -> Vec<WindowEntry>
pub fn list(&self) -> Vec<WindowEntry>
Reaps stale entries, then returns the live set sorted for deterministic output. Holds the lock only for pure-CPU work.
Sourcepub fn first_folder(&self, key: &str) -> Option<PathBuf>
pub fn first_folder(&self, key: &str) -> Option<PathBuf>
The first workspace folder of a still-live window, if it has one. Used by
the tray “focus” action to resolve a key to a folder to open. Does not
reap — a menu action races the reaper either way, and the caller handles
a None (the window may have closed).