pub struct Builder { /* private fields */ }Expand description
Builder for a RepoWatcher — set the watch scope and debounce timing, then
build.
Implementations§
Source§impl Builder
impl Builder
Sourcepub fn working_tree(self, yes: bool) -> Self
pub fn working_tree(self, yes: bool) -> Self
Also watch the working tree recursively, so a bare unstaged edit
(vim file) fires WorkingCopyChanged
immediately. Off by default (only the .git/.jj state dir is watched,
which catches an unstaged edit once it touches the index / a jj snapshot).
Note: notify is .gitignore-unaware, so this also watches ignored and
build directories — heavier on a large tree.
Sourcepub fn debounce(self, window: Duration) -> Self
pub fn debounce(self, window: Duration) -> Self
The quiet window: re-query once the watched dir has been silent this long after the last event (default 250 ms). Coalesces an operation’s write burst into one re-check.
Sourcepub fn max_wait(self, ceiling: Duration) -> Self
pub fn max_wait(self, ceiling: Duration) -> Self
The ceiling on how long a continuous event stream defers the re-query (default 1 s) — a long bulk operation still reports at this cadence.
Sourcepub fn requery_timeout(self, timeout: Option<Duration>) -> Self
pub fn requery_timeout(self, timeout: Option<Duration>) -> Self
Deadline on a single re-query (the snapshot + branch-list pair), default
DEFAULT_REQUERY_TIMEOUT (30 s); None disables it. Orthogonal to
max_wait: that bounds how long signals may defer a
re-query, this bounds how long one re-query may run. On overrun the
spawned commands are killed (kill-on-drop) and the re-query is skipped as
transient — the next filesystem event re-checks.
Note: on a very large repository a cold-cache git status (first run
after a gc, or on a slow disk) can legitimately exceed the 30 s default
— raise it (or pass None) there; a watcher whose every re-query is
being killed shows up as climbing WatcherStats::skipped with flat
changes.
Sourcepub async fn build(self) -> Result<RepoWatcher>
pub async fn build(self) -> Result<RepoWatcher>
Start watching. Captures the baseline state, registers the filesystem watch, and spawns the background re-query task on the current tokio runtime.