digitalis_server/
client.rs1use digitalis_core::{DigitalisError, DigitalisResult};
2use tokio::sync::mpsc::Sender;
3use tokio_tungstenite::tungstenite::Message;
4
5pub type ClientId = u32;
6pub type MessageSender = Sender<Message>;
7
8#[derive(Debug, Clone)]
9pub struct Client {
10 id: ClientId,
11 sender: MessageSender,
12}
13
14impl Client {
15 pub const fn new(id: ClientId, sender: MessageSender) -> Self {
16 Self { id, sender }
17 }
18
19 pub const fn id(&self) -> ClientId {
20 self.id
21 }
22
23 pub fn nonblocking_send(&self, msg: Message) -> DigitalisResult<()> {
24 self.sender
25 .try_send(msg)
26 .map_err(|_| DigitalisError::ChannelSendError)
27 }
28}