Skip to main content

Builder

Struct Builder 

Source
pub struct Builder { /* private fields */ }
Expand description

Builder for a RepoWatcher — set the watch scope and debounce timing, then build.

Implementations§

Source§

impl Builder

Source

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.

Source

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.

Source

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.

Source

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.

Source

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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more