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
85
86
87
88
89
90
91
92
93
94
//! MoQT wire codec for
//! [draft-07](https://www.ietf.org/archive/id/draft-ietf-moq-transport-07.html) through
//! [draft-20](https://www.ietf.org/archive/id/draft-ietf-moq-transport-20.html).
//!
//! Each draft sits behind its own feature flag — `draft07` through `draft20`.
//! The default is `all-drafts`, which enables every one of them.
//!
//! # Shared modules
//!
//! - [`varint`] — variable-length integers, in whichever encoding the draft
//! uses: RFC 9000 Section 16 through draft-16, MoQT's own from draft-17
//! - [`kvp`] — Key-value parameter pairs used in control messages
//! - [`types`] — Core protocol types (TrackNamespace, Location, enums)
//! - [`version`] — Draft version enum, ALPN and varint encoding per draft
//! - [`error`] — Codec error types and size limits
//! - [`auth_token`], [`subscription_filter`], [`range_filter`] — parameter
//! values that carry a structure rather than opaque bytes
//! - [`dispatch`], [`data_dispatch`] — runtime draft dispatch and draft-neutral
//! object framing
//! - [`message_names`] — the name a draft gives a control message type ID,
//! which needs both halves because the ids are reused across the range
//!
//! # Draft-specific modules
//!
//! Each `draftNN` module provides control message and data stream encoding/decoding
//! for that specific draft version. Enable via the corresponding feature flag.
//!
//! Each also carries an `error_codes` module holding that draft's error, status and
//! termination code registries as enums. They are reached only through their draft —
//! `draft14::error_codes::SessionErrorCode` — and nothing from them is re-exported at
//! the crate root. Registry names recur across drafts while the code points behind
//! them move: every one of the fourteen defines a `SessionErrorCode`, and drafts that
//! share a spelling do not always share a value. A root-level re-export would collide
//! outright, and disambiguating it would mean coining names that appear in no draft's
//! table. The `draftNN` path is what fixes which table a code point came from.
/// The Token structure carried by the AUTHORIZATION TOKEN parameter.
///
/// Drafts 11 through 20 define one structure and require a receiver to close
/// the session when a value it understands does not match it.
/// Codec error types and size limits.
/// Key-value parameter pair encoding and decoding.
/// Core protocol types shared across drafts.
/// QUIC variable-length integer encoding and decoding.
pub use message_type_name;