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}