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
47
48
49
50
51
52
53
//! The JSON wire contract between the hygg client (`cli-text-reader` / `hygg`)
//! and the sync server (`hygg-server`). Every shape that crosses the network is
//! defined here exactly once, so a change on either side is a *compile* error
//! on the other: rename a field on the server and the client stops building
//! until it is reconciled.
//!
//! It lives in `hygg-shared` (MIT) on purpose. The client is AGPL-3.0 and the
//! server is Elastic-licensed; routing their shared types through a permissive
//! crate gives both sides static typing across the boundary without either
//! license reaching across it.
//!
//! Conventions:
//! - Outbound counts/offsets are unsigned (`u64`/`u32`); the server stores them
//! as `i64`, so inbound DTOs mirror the columns as `i64`.
//! - `updated_at` / `created_at` / `server_time` are epoch milliseconds.
//! - Tombstones travel as `deleted: bool`; the server's `i64` (0/1) column is
//! normalised to a bool at the DTO boundary.
//!
//! Module split (purely to keep each file within the LOC budget):
//! [`device`] identity/devices, [`books`] documents, [`push`] outbound ops,
//! [`pull`] inbound rows, [`events`] the SSE stream, [`denial`] refusals,
//! [`commerce`] the paid-deployment plans/checkout (served only by a
//! commercial build).
pub use crateSyncMode;
pub use ;
pub use ;
pub use DenialBody;
pub use ;
pub use ;
pub use ;