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
//! **Group Broadcast Protocol — base layer**.
//!
//! This crate implements the protocol substrate that every sub-protocol
//! (`gtp-protocol`, `gap-protocol`, `gsp-protocol`) sits on top of:
//!
//! * [`GbpFrame`] — the CBOR-encoded transport frame.
//! * [`ControlMessage`] — control plane message envelope.
//! * [`ErrorObject`] — wire-serialisable error object.
//! * [`CodecError`] — unified codec error type used across the stack.
//!
//! The role of GBP in the protocol family is roughly the same as IP's role in
//! the TCP/IP stack: it provides addressed, integrity-protected delivery of
//! opaque payloads, leaving message semantics to the layers above.
//!
//! See the [`gbp-core`] crate for the shared type vocabulary (StreamType,
//! flags, FSM states, error codes).
//!
//! [`gbp-core`]: https://crates.io/crates/gbp-core
pub use ControlMessage;
pub use ErrorObject;
pub use GbpFrame;
/// Unified codec error type used by every codec in the stack.
///
/// GTP, GAP and GSP all return this error so that callers can handle decoding
/// failures uniformly without having to know which sub-protocol was being
/// parsed.