pub trait AbstractSocket {
type Message;
type Param;
// Required methods
fn create_client_socket(
&mut self,
_param: &PSocketParam,
_extra_param: &Self::Param,
) -> bool;
fn create_server_socket(
&mut self,
param: &PSocketParam,
extra_param: &Self::Param,
) -> bool;
fn send_data<T>(&mut self, data: &T, flag: PSendFlag) -> PSendStatus
where T: Default + DataStream + Debug;
fn recv_data<T>(&mut self, data: &mut T, flag: PRecvFlag) -> PRecvStatus
where T: Default + DataStream + Debug;
fn send_msg(
&mut self,
message: &Self::Message,
flag: PSendFlag,
) -> PSendStatus;
fn recv_msg(
&mut self,
message: &mut Self::Message,
flag: PRecvFlag,
) -> PRecvStatus;
fn close(&mut self);
fn is_connected(&mut self) -> bool;
}Expand description
Abtract implementation of a socket. It can send and recieved arbitrary data and can also be close and tell if it is connected to and other socket.
Required Associated Types§
Required Methods§
Sourcefn create_client_socket(
&mut self,
_param: &PSocketParam,
_extra_param: &Self::Param,
) -> bool
fn create_client_socket( &mut self, _param: &PSocketParam, _extra_param: &Self::Param, ) -> bool
Sourcefn create_server_socket(
&mut self,
param: &PSocketParam,
extra_param: &Self::Param,
) -> bool
fn create_server_socket( &mut self, param: &PSocketParam, extra_param: &Self::Param, ) -> bool
Sourcefn send_data<T>(&mut self, data: &T, flag: PSendFlag) -> PSendStatus
fn send_data<T>(&mut self, data: &T, flag: PSendFlag) -> PSendStatus
Sourcefn recv_data<T>(&mut self, data: &mut T, flag: PRecvFlag) -> PRecvStatus
fn recv_data<T>(&mut self, data: &mut T, flag: PRecvFlag) -> PRecvStatus
Sourcefn send_msg(&mut self, message: &Self::Message, flag: PSendFlag) -> PSendStatus
fn send_msg(&mut self, message: &Self::Message, flag: PSendFlag) -> PSendStatus
Sourcefn recv_msg(
&mut self,
message: &mut Self::Message,
flag: PRecvFlag,
) -> PRecvStatus
fn recv_msg( &mut self, message: &mut Self::Message, flag: PRecvFlag, ) -> PRecvStatus
Sourcefn is_connected(&mut self) -> bool
fn is_connected(&mut self) -> bool
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.