jmap-mail-types 0.1.0

RFC 8621 JMAP for Mail data types (Mailbox, Thread, Email, Identity, EmailSubmission, SearchSnippet)
Documentation

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");