xwt_anchor/types.rs
1//! This crate's types.
2//!
3//! These types are generic around the underlying implementation that is
4//! typically required to implement corresponding [`xwt_core`] traits.
5
6/// A WebTransport endpoint.
7#[repr(transparent)]
8pub struct Endpoint<T>(pub T);
9
10/// A state of a connecting WebTransport session.
11#[repr(transparent)]
12pub struct Connecting<T>(pub T);
13
14/// A state of a accepting WebTransport session.
15#[repr(transparent)]
16pub struct Accepting<T>(pub T);
17
18/// An incoming WebTransport session request.
19#[repr(transparent)]
20pub struct Request<T>(pub T);
21
22/// A WebTransport session.
23#[repr(transparent)]
24pub struct Session<T>(pub T);
25
26/// An state for an opening bidirectional WebTransport stream.
27#[repr(transparent)]
28pub struct OpeningBiStream<T>(pub T);
29
30/// An state for an opening unidirectional WebTransport stream.
31#[repr(transparent)]
32pub struct OpeningUniStream<T>(pub T);
33
34/// A WebTransport send-stream.
35#[repr(transparent)]
36pub struct SendStream<T>(pub T);
37
38/// A WebTransport recv-stream.
39#[repr(transparent)]
40pub struct RecvStream<T>(pub T);
41
42/// A pair of WebTransport streams.
43///
44/// Never actually instantiated.
45#[repr(transparent)]
46pub struct Streams<T>((core::marker::PhantomData<T>, core::convert::Infallible));
47
48/// A WebTransport datagram.
49#[repr(transparent)]
50pub struct Datagram<T>(pub T);