naia_client_socket/
packet_sender.rs1use super::{error::NaiaClientSocketError, server_addr::ServerAddr};
2
3pub trait PacketSender: PacketSenderClone + Send + Sync {
5 fn send(&self, payload: &[u8]) -> Result<(), NaiaClientSocketError>;
7 fn server_addr(&self) -> ServerAddr;
9 fn connected(&self) -> bool;
11 fn disconnect(&mut self);
13}
14
15pub trait PacketSenderClone {
17 fn clone_box(&self) -> Box<dyn PacketSender>;
19}
20
21impl<T: 'static + PacketSender + Clone> PacketSenderClone for T {
22 fn clone_box(&self) -> Box<dyn PacketSender> {
23 Box::new(self.clone())
24 }
25}
26
27impl Clone for Box<dyn PacketSender> {
28 fn clone(&self) -> Box<dyn PacketSender> {
29 PacketSenderClone::clone_box(self.as_ref())
30 }
31}