Expand description
RFC 8621 JMAP for Mail data types.
Provides Email, Mailbox, Thread, Identity, EmailSubmission,
and SearchSnippet — the core object types defined by
RFC 8621.
This crate is types-only: no method handlers, no async, no network I/O.
It sits between jmap-types (shared wire primitives) and jmap-mail-server
(method handlers).
All types implement serde::Serialize and serde::Deserialize with the
camelCase field names required by the JMAP wire format.
§Example
use jmap_mail_types::Mailbox;
let json = r#"{
"id": "mb1",
"name": "Inbox",
"role": "inbox",
"sortOrder": 10,
"totalEmails": 42,
"unreadEmails": 3,
"totalThreads": 20,
"unreadThreads": 2,
"myRights": {
"mayReadItems": true,
"mayAddItems": true,
"mayRemoveItems": true,
"maySetSeen": true,
"maySetKeywords": true,
"mayCreateChild": true,
"mayRename": true,
"mayDelete": false,
"maySubmit": false
},
"isSubscribed": true
}"#;
let mailbox: Mailbox = serde_json::from_str(json).unwrap();
assert_eq!(mailbox.name, "Inbox");Re-exports§
pub use backend::EmailProperty;pub use backend::EmailSubmissionProperty;pub use backend::IdentityProperty;pub use backend::MailboxProperty;pub use backend::SearchSnippetProperty;pub use backend::ThreadProperty;pub use backend::VacationResponseProperty;pub use capability::MailAccountCapability;pub use capability::MailCapability;pub use capability::SubmissionAccountCapability;pub use capability::SubmissionCapability;pub use capability::VacationResponseCapability;pub use capability::JMAP_MAIL_URI;pub use capability::JMAP_SUBMISSION_URI;pub use capability::JMAP_VACATIONRESPONSE_URI;pub use email::Email;pub use email::EmailAddress;pub use email::EmailAddressGroup;pub use email::EmailBodyPart;pub use email::EmailBodyValue;pub use email::EmailHeader;pub use identity::Identity;pub use keyword::Keyword;pub use keyword::KeywordError;pub use mailbox::Mailbox;pub use mailbox::MailboxFilterCondition;pub use mailbox::MailboxRights;pub use mailbox::MailboxRole;pub use mailbox::MAILBOX_FILTER_CONDITION_KEYS;pub use query::ComparatorProperty;pub use query::EmailComparator;pub use query::EmailFilter;pub use query::EmailFilterCondition;pub use query::EmailSubmissionFilter;pub use query::MailboxFilter;pub use snippet::SearchSnippet;pub use submission::Address;pub use submission::Delivered;pub use submission::DeliveryStatus;pub use submission::Displayed;pub use submission::EmailSubmission;pub use submission::EmailSubmissionFilterCondition;pub use submission::Envelope;pub use submission::UndoStatus;pub use thread::Thread;pub use vacation::VacationResponse;
Modules§
- backend
- Property selector enums and
jmap_types::JmapObjectimpls for RFC 8621 types. - capability
- Capability types for the JMAP for Mail extension (RFC 8621).
- RFC 8621 §4 Email object and its component types.
- identity
- RFC 8621 §6 Identity object.
- keyword
- System keyword constants and the
Keywordnewtype for JMAP Email (RFC 8621 §4.1.1). - mailbox
- RFC 8621 §2 Mailbox object and its component types.
- query
- Email/query filter and comparator types (RFC 8621 §4.4).
- snippet
- RFC 8621 §5 SearchSnippet object.
- submission
EmailSubmissionand related types for RFC 8621 §7.- thread
- RFC 8621 §3 Thread object.
- vacation
- RFC 8621 §8 VacationResponse object.
Structs§
- Filter
Operator - Logical combination of filters (RFC 8620 §5.5).