pub mod session;
pub mod websocket;
pub use session::{
AcceptedSession, InputReliability, ReceivedInput, ServerIdentity, StreamSession,
TransportConfig, WebTransportServer,
};
pub use websocket::{AcceptedWebSocketSession, WebSocketServer, WebSocketSession};
#[derive(Debug, thiserror::Error)]
pub enum TransportError {
#[error("transport initialization failed: {0}")]
InitFailed(String),
#[error("connection failed: {0}")]
ConnectionFailed(String),
#[error("session closed")]
SessionClosed,
#[error("peer does not support QUIC datagrams")]
DatagramsUnsupported,
#[error("datagram too large: {size} bytes (max {max})")]
DatagramTooLarge { size: usize, max: usize },
#[error("invalid frame packet: {0}")]
InvalidFramePacket(String),
#[error("invalid input event: {0}")]
InvalidInputEvent(String),
#[error("stream I/O failed: {0}")]
StreamIo(String),
}