Skip to main content

moq_net/model/
mod.rs

1pub mod bandwidth;
2pub mod broadcast;
3pub mod cache;
4pub mod frame;
5pub mod group;
6pub mod track;
7
8// The origin + announce subsystem shares one implementation (a broadcast tree).
9// It stays in a single private module and is surfaced as two curated public
10// modules so neither leaks the other's plumbing.
11#[path = "origin.rs"]
12mod origin_impl;
13
14mod bytes;
15mod datagram;
16mod requests;
17pub(crate) mod resume;
18mod subscription;
19mod time;
20mod weak_cache;
21
22#[cfg(test)]
23pub(crate) mod test_tracing;
24
25pub(crate) use requests::Requests;
26pub(crate) use weak_cache::{WeakCache, WeakEntry};
27
28pub use bytes::*;
29// Datagram stays flat at the crate root (a small track-adjacent wire type),
30// not under a role module.
31pub use datagram::*;
32pub use time::*;
33
34/// Publishing and consuming the set of broadcasts routed through an origin.
35pub mod origin {
36	pub use super::origin_impl::{Consumer, Dynamic, Info, Producer, Request, Requesting};
37}
38
39/// Subscribing to broadcast (un)announcements from an origin.
40pub mod announce {
41	pub use super::origin_impl::{
42		AnnounceConsumer as Consumer, AnnounceProducer as Producer, OriginAnnounce as Update,
43	};
44}
45
46// Origin identity and the `Consume` conversion trait aren't part of a role
47// module; keep them flat at the crate root.
48pub use origin_impl::{Consume, InvalidOrigin, Origin, OriginList, TooManyOrigins};