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}