Skip to main content

Notmuch

Struct Notmuch 

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

Implementations§

Source§

impl Notmuch

Source

pub fn new(paths: Arc<MailPaths>) -> Self

Source

pub fn paths(&self) -> &MailPaths

Source

pub async fn revision(&self) -> Result<Revision>

Source

pub async fn count(&self, query: &Query) -> Result<usize>

Source

pub async fn count_batch(&self, queries: &[String]) -> Result<Vec<u64>>

Counts many queries in one process.

The sidebar asks for a count per row, and spawning notmuch per row costs more than the counting does. --batch reads one query per line and writes one count per line, in order. No write lock: counting is a read, and Xapian’s single-writer rule does not reach it.

An empty line means “everything” to notmuch, so a blank query would silently return the whole database rather than nothing. They are substituted before sending and answered as 0.

Source

pub async fn search_threads(&self, query: &Query) -> Result<Vec<ThreadSummary>>

Source

pub async fn thread(&self, id: &ThreadId) -> Result<Thread>

Source

pub async fn message(&self, id: &MessageId) -> Result<Message>

Source

pub async fn message_file(&self, id: &MessageId) -> Result<PathBuf>

Source

pub async fn parsed(&self, id: &MessageId) -> Result<Arc<ParsedMessage>>

Source

pub async fn message_with_parts(&self, id: &MessageId) -> Result<Message>

Source

pub async fn body( &self, id: &MessageId, format: BodyFormat, allow_remote_resources: bool, ) -> Result<Body>

Source

pub async fn part(&self, id: &MessageId, part: &PartId) -> Result<Part>

Source

pub async fn address_book(&self, limit: usize) -> Result<AddressBook>

The address book, built from who you have written to and who has written to you. Recipients are collected first so they outrank senders.

Source

pub async fn mailing_lists(&self, scan: usize) -> Result<Vec<MailingList>>

The mailing lists recent mail arrived from.

notmuch cannot enumerate List-Id values — it is not even a searchable prefix unless index.header.List is configured — so this reads the header off recent message files and tallies them. It is bounded by scan files for that reason: the cost is real, and unbounded it would grow with the maildir.

Source

pub async fn indexes_list_id(&self) -> bool

Whether List: is a searchable prefix, which needs index.header.List=List-Id and a reindex. Without it the list rows would render and then match nothing when clicked.

Source

pub async fn tags(&self) -> Result<Vec<String>>

Every tag in the database, for query completion.

Source

pub async fn tag(&self, ops: &[TagOp]) -> Result<Revision>

Source

pub async fn tag_batch(&self, batch: &str) -> Result<Revision>

Source

pub async fn index_new(&self) -> Result<Revision>

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