[][src]Crate melib

A crate that performs mail client operations such as

  • Hold an Envelope with methods convenient for mail client use. (see module email)
  • Abstract through mail storages through the MailBackend trait, and handle read/writes/updates through it. (see module melib::backends)
  • Decode attachments (see module melib::email::attachments)
  • Create new mail (see email::Draft)
  • Manage an addressbook i.e. have contacts (see module addressbook)
  • Build thread structures out of a list of mail via their In-Reply-To and References header values (see module thread)

Other exports are

  • Thread management (see module async_workers)
  • Basic mail account configuration to use with backends (see module conf)
  • Parser combinators (see module parsec)
  • A ShellExpandTrait to expand paths like a shell.
  • A debug macro that works like std::dbg but for multiple threads. (see dbg module)

Re-exports

pub use datetime::UnixTimestamp;
pub use self::logging::LoggingLevel::*;
pub use crate::email::*;
pub use crate::thread::*;
pub use crate::conf::*;
pub use crate::mailbox::*;
pub use crate::backends::Backends;
pub use crate::backends::RefreshEvent;
pub use crate::backends::RefreshEventConsumer;
pub use crate::backends::SpecialUsageMailbox;
pub use crate::email::Envelope;
pub use crate::email::Flag;
pub use crate::error::MeliError;
pub use crate::error::Result;
pub use crate::addressbook::*;
pub use shellexpand::ShellExpandTrait;

Modules

addressbook
async_workers

Primitive Async/Wait implementation.

backends
conf
datetime
dbg
email

Email parsing, handling, sending etc.

error

An error object for melib

mailbox

Mail related code.

parsec
shellexpand
text_processing
thread

This module implements Jamie Zawinski's (threading algorithm) [https://www.jwz.org/doc/threading.html]. It is a bit of a beast, so prepare for a lot of bloated code that's necessary for the crap modern e-mail is. Quoted comments (/* " .. " */) are taken almost verbatim from the algorithm.

Macros

big_if_true
debug
get_path_hash
make_address
tag_hash

Enums

LoggingLevel

Functions

change_log_dest
change_log_level
get_log_level
log