use std::{net::SocketAddr, time::Duration};
#[derive(Debug, thiserror::Error)]
pub enum RecvError {
#[error("no events to receive")]
Empty,
#[error("transport closed")]
Closed,
}
#[derive(Debug, thiserror::Error)]
pub enum SessionError {
#[error("transport closed")]
Closed,
#[error("forced disconnect")]
ForceDisconnect,
#[error("failed to connect")]
Connecting(#[source] anyhow::Error),
#[error("transport error")]
Transport(#[source] anyhow::Error),
}
pub trait Rtt {
fn rtt(&self) -> Duration;
}
pub trait RemoteAddr {
fn remote_addr(&self) -> SocketAddr;
}