use crate::sockets::{SocketAddrCheck, SocketAddressFamily};
use std::net::SocketAddr;
use std::sync::Arc;
pub struct IncomingDatagramStream {
pub(crate) inner: Arc<tokio::net::UdpSocket>,
pub(crate) remote_address: Option<SocketAddr>,
}
pub struct OutgoingDatagramStream {
pub(crate) inner: Arc<tokio::net::UdpSocket>,
pub(crate) remote_address: Option<SocketAddr>,
pub(crate) family: SocketAddressFamily,
pub(crate) send_state: SendState,
pub(crate) socket_addr_check: Option<SocketAddrCheck>,
}
pub(crate) enum SendState {
Idle,
Permitted(usize),
Waiting,
}