jmap_filenode_types/lib.rs
1//! JMAP FileNode extension data types.
2//!
3//! Implements the data types defined in draft-ietf-jmap-filenode-13.
4//! Types only — no method handlers, no async, no network I/O.
5//!
6//! ## Module layout
7//!
8//! - [`filenode`] — [`FileNode`], [`NodeType`], [`NodeRole`], [`FilesRights`]
9//! - [`capability`] — [`FileNodeCapability`], [`JMAP_FILENODE_URI`]
10//! - [`filter`] — [`FileNodeFilterCondition`]
11//!
12//! All public types are re-exported at the crate root.
13
14#![forbid(unsafe_code)]
15
16pub mod backend;
17pub mod capability;
18pub mod filenode;
19pub mod filter;
20
21pub use backend::FileNodeProperty;
22pub use capability::{FileNodeCapability, JMAP_FILENODE_URI};
23pub use filenode::{FileNode, FilesRights, NodeRole, NodeType};
24pub use filter::{FileNodeFilter, FileNodeFilterCondition};
25
26/// Generic filter algebra from `jmap-types::query` (RFC 8620 §5.5).
27///
28/// Re-exported here so callers of `jmap-filenode-types` do not need a
29/// direct dependency on `jmap-types`. Mirrors the canonical
30/// [`jmap_mail_types::query`] re-exports from the workspace canonical
31/// extension-types template.
32///
33/// [`jmap_mail_types::query`]: https://docs.rs/jmap-mail-types/latest/jmap_mail_types/query/index.html
34pub use jmap_types::query::{Filter, FilterOperator, Operator};