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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//! Shared message types for `net_backend_server`: plain Rust + serde, usable from any Rust client.
//!
//! The server and its clients use the same types, so both sides agree on every request, answer
//! and push, and on the JSON they become. The crate contains only data types and pure helpers;
//! a client library or the server sends them.
//!
//! - [`envelope`]: the WebSocket frames (request, answer, push, first-message auth), close codes,
//! the [`WsCall`] / [`ServerPush`] traits.
//! - [`error`]: the error body of HTTP and WebSocket answers ([`ApiError`]) and the stable [`codes`].
//! - [`ids`], [`time`], [`page`]: id newtypes on `i64`, [`UnixMillis`] timestamps, cursor pagination.
//! - [`auth`]: accounts and sessions (email + password, Steam, refresh, logout, verify, reset),
//! with secrets that never show in `Debug`.
//! - [`admin`]: account administration (list, ban, sessions, roles) and the audit log.
//! - [`storage`]: per-user key-value objects (saves) with optimistic versions.
//! - [`chat`]: rooms, direct messages, sending, history and the `chat.message` push.
//! - [`leaderboards`]: boards, score submission, the top, the caller's rank and the ranks around it.
//! - [`notifications`]: stored per-player notifications, read / unread, deletes and the `notify.new` push.
//! - [`friends`]: friends by account (requests by id, name or friend code; accept, decline, remove,
//! block), online state and the `friends.presence` push.
//! - [`groups`]: groups (guilds, clans): create, invite, join, leave, kick, roles, metadata, a name
//! search.
//! - [`lobbies`]: lobbies (create, join by id or join code, leave, kick, host, ready flags,
//! metadata, a search by metadata) and the `lobby.member` / `lobby.changed` pushes.
//! - [`matchmaking`]: queues, tickets, the `match.found` / `match.expired` pushes.
//! - [`oauth`]: OpenID Connect logins (an identity provider's ID token, e.g. Google's), linking.
//! - [`files`]: binary files with a content type, a SHA-256, quotas and a visibility (private,
//! public, friends, shared with accounts); the upload and download routes in [`routes::BINARY`].
//! - [`kinds`] and [`routes`]: every WebSocket `type` and HTTP path as constants.
//! - [`http_call`]: the [`HttpCall`] trait pairing every HTTP route with its payload and answer
//! type (the HTTP twin of [`WsCall`]).
//! - [`version`]: [`PROTOCOL_VERSION`] and how it is exchanged.
//!
//! Feature `bevy_net_backend` (off by default) implements that client crate's `WsRequest` /
//! `WsPushMessage` for the WebSocket messages and `Credentials` for [`AccessToken`], and adds
//! the `bevy` module: every [`HttpCall`] as a typed request of that client. The README is the full
//! manual.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use UnixMillis;
pub use ;
/// The README's Rust blocks, compiled as doctests.
;