pub trait Server:
Send
+ Sync
+ Sized {
// Required methods
fn open(url: &str) -> Option<Self>;
fn close(self) -> Self;
fn id(&self) -> ServerId;
fn state(&self) -> ServerState;
fn clients(&self) -> &[ClientId] ⓘ;
fn disconnect(&mut self, id: ClientId);
fn disconnect_all(&mut self);
fn send(
&mut self,
id: ClientId,
msg_id: MessageId,
data: &[u8],
) -> Option<Range<usize>>;
fn send_all(&mut self, id: MessageId, data: &[u8]);
fn read(&mut self) -> Option<(ClientId, MessageId, Vec<u8>)>;
// Provided methods
fn read_all(&mut self) -> Vec<(ClientId, MessageId, Vec<u8>)> { ... }
fn process(&mut self) { ... }
}
Required Methods§
fn open(url: &str) -> Option<Self>
fn close(self) -> Self
fn id(&self) -> ServerId
fn state(&self) -> ServerState
fn clients(&self) -> &[ClientId] ⓘ
fn disconnect(&mut self, id: ClientId)
fn disconnect_all(&mut self)
fn send( &mut self, id: ClientId, msg_id: MessageId, data: &[u8], ) -> Option<Range<usize>>
fn send_all(&mut self, id: MessageId, data: &[u8])
fn read(&mut self) -> Option<(ClientId, MessageId, Vec<u8>)>
Provided Methods§
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.