1use crate::sockets::{SocketAddrCheck, SocketAddressFamily};
2use std::net::SocketAddr;
3use std::sync::Arc;
4
5pub struct IncomingDatagramStream {
6 pub(crate) inner: Arc<tokio::net::UdpSocket>,
7
8 pub(crate) remote_address: Option<SocketAddr>,
10}
11
12pub struct OutgoingDatagramStream {
13 pub(crate) inner: Arc<tokio::net::UdpSocket>,
14
15 pub(crate) remote_address: Option<SocketAddr>,
17
18 pub(crate) family: SocketAddressFamily,
20
21 pub(crate) send_state: SendState,
22
23 pub(crate) socket_addr_check: Option<SocketAddrCheck>,
25}
26
27pub(crate) enum SendState {
28 Idle,
30
31 Permitted(usize),
33
34 Waiting,
36}