1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Backend marker traits shared across all JMAP server crates.
//!
//! These traits are defined here in `jmap-types` so that implementations can
//! go in the type crates (`jmap-mail-types`, `jmap-chat-types`) without
//! violating the orphan rule.
// ---------------------------------------------------------------------------
// Marker traits
// ---------------------------------------------------------------------------
/// Marker trait for all JMAP object types.
///
/// Implement this in the *types* crate for each first-class JMAP object (e.g.
/// `Mailbox`, `Email`, `Chat`). The [`TYPE_NAME`](JmapObject::TYPE_NAME) constant
/// is used in error messages and capability checks in the server crates.
/// Marker for object types that support `get` and `changes` operations.
/// Marker for object types that support `set` (create/update/destroy) operations.
/// Marker for object types that support `query` and `queryChanges` operations.