Skip to main content

Freshness

Struct Freshness 

Source
pub struct Freshness { /* private fields */ }

Implementations§

Source§

impl Freshness

Source

pub fn new(window: Duration) -> Self

Source

pub fn building(&self) -> bool

Whether a refresh is writing to the index right now.

A read checks this rather than queueing behind the write: the index is one connection behind one mutex, and a chunk of a rebuild takes far longer than the notmuch call the reader would otherwise be waiting on, so blocking on it would make the index slower than not having one.

Source

pub fn begin_build(&self)

Source

pub fn end_build(&self)

Source

pub fn fresh(&self) -> bool

Whether the index was confirmed current recently enough to be believed.

Source

pub fn generation(&self) -> u64

Read before doing the work that makes the index current, and handed back to Self::vouch afterwards.

Source

pub fn vouch(&self, generation: u64)

Declares the index current — but only if nothing was written since generation was taken.

A write that lands during a refresh is not in what that refresh read, so vouching for it unconditionally hides the write for a whole window: the tag is in notmuch, the list does not have it, and nothing anywhere is in an error state. It takes a build finishing in the same moment as a write, which is why it survived every run of the suite but one.

Source

pub fn note_write(&self)

A write of ours moved the database, so the next read revalidates — and any refresh already in flight can no longer vouch for what it built.

Trait Implementations§

Source§

impl Default for Freshness

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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