xwt_core/
lib.rs

1//! A common WebTransport interface for browser and native.
2//! Write once, run anywhere.
3//!
4//! Users should utilise the traits from this crate directly for the most
5//! flexibility at the type level.
6
7#![no_std]
8#![cfg_attr(feature = "error-in-core", feature(error_in_core))]
9
10#[cfg(feature = "std")]
11extern crate std;
12
13#[cfg(feature = "alloc")]
14extern crate alloc;
15
16pub mod base;
17pub mod endpoint;
18pub mod session;
19pub mod stream;
20pub mod stream_utils;
21
22pub mod utils {
23    //! Useful utilities.
24
25    pub mod dummy;
26    pub mod maybe;
27
28    mod error;
29    pub use error::Error;
30}
31
32pub mod prelude {
33    //! A prelude of the ferquently used types.
34
35    pub use crate::base::Session as _;
36    pub use crate::endpoint::accept::{Accept as _, Accepting as _, Request as _};
37    pub use crate::endpoint::connect::{Connect as _, Connecting as _};
38    pub use crate::session::base::{DatagramOps as _, StreamOps as _};
39    pub use crate::session::datagram::{MaxSize as _, Receive as _, ReceiveInto as _, Send as _};
40    pub use crate::session::stream::{
41        AcceptBi as _, AcceptUni as _, OpenBi as _, OpenUni as _, OpeningBi as _, OpeningUni as _,
42    };
43    pub use crate::stream::{
44        AsErrorCode as _, Finish as _, Read as _, ReadAbort as _, ReadChunk as _, Write as _,
45        WriteAbort as _, WriteAborted as _, WriteChunk as _,
46    };
47
48    pub use crate::endpoint::accept_utils::*;
49    pub use crate::endpoint::connect_utils::*;
50    pub use crate::session::datagram_utils::*;
51    pub use crate::session::stream_utils::*;
52    pub use crate::stream_utils::*;
53}
54
55/// An backward-compat [`Connection`] trait.
56#[deprecated = "use base::Session instead"]
57pub trait Connection: base::Session {}
58
59#[allow(deprecated)]
60impl<T> Connection for T where T: base::Session {}