spacetimedb/
client.rs

1use crate::identity::Identity;
2use std::fmt;
3
4mod client_connection;
5mod client_connection_index;
6mod message_handlers;
7pub mod messages;
8
9pub use client_connection::{
10    ClientConfig, ClientConnection, ClientConnectionSender, ClientSendError, DataMessage, Protocol,
11};
12pub use client_connection_index::ClientActorIndex;
13pub use message_handlers::MessageHandleError;
14use spacetimedb_lib::ConnectionId;
15
16#[derive(PartialEq, Eq, Clone, Copy, Hash, Debug)]
17pub struct ClientActorId {
18    pub identity: Identity,
19    pub connection_id: ConnectionId,
20    pub name: ClientName,
21}
22
23impl ClientActorId {
24    #[cfg(test)]
25    pub fn for_test(identity: Identity) -> Self {
26        ClientActorId {
27            identity,
28            connection_id: ConnectionId::ZERO,
29            name: ClientName(0),
30        }
31    }
32}
33
34#[derive(PartialEq, Eq, Clone, Copy, Hash, Debug)]
35pub struct ClientName(pub u64);
36
37impl fmt::Display for ClientActorId {
38    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
39        write!(
40            f,
41            "ClientActorId({}@{}/{})",
42            self.identity.to_hex(),
43            self.connection_id.to_hex(),
44            self.name.0
45        )
46    }
47}