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, MeteredDeque,
11    MeteredReceiver, Protocol,
12};
13pub use client_connection_index::ClientActorIndex;
14pub use message_handlers::{MessageExecutionError, MessageHandleError};
15use spacetimedb_lib::ConnectionId;
16
17#[derive(PartialEq, Eq, Clone, Copy, Hash, Debug)]
18pub struct ClientActorId {
19    pub identity: Identity,
20    pub connection_id: ConnectionId,
21    pub name: ClientName,
22}
23
24impl ClientActorId {
25    #[cfg(test)]
26    pub fn for_test(identity: Identity) -> Self {
27        ClientActorId {
28            identity,
29            connection_id: ConnectionId::ZERO,
30            name: ClientName(0),
31        }
32    }
33}
34
35#[derive(PartialEq, Eq, Clone, Copy, Hash, Debug)]
36pub struct ClientName(pub u64);
37
38impl fmt::Display for ClientActorId {
39    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
40        write!(
41            f,
42            "ClientActorId({}@{}/{})",
43            self.identity.to_hex(),
44            self.connection_id.to_hex(),
45            self.name.0
46        )
47    }
48}