samod_core/actors/document/
spawn_args.rs1use std::collections::HashMap;
2
3use crate::{ConnectionId, DocumentActorId, PeerId, actors::messages::DocMessage};
4
5#[derive(Clone)]
6pub struct SpawnArgs {
7 pub(crate) local_peer_id: PeerId,
8 pub(crate) actor_id: DocumentActorId,
9 pub(crate) document_id: crate::DocumentId,
10 pub(crate) initial_content: Option<automerge::Automerge>,
11 pub(crate) initial_connections: HashMap<ConnectionId, (PeerId, Option<DocMessage>)>,
12}
13
14impl std::fmt::Debug for SpawnArgs {
15 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
16 f.debug_struct("SpawnArgs")
17 .field("actor_id", &self.actor_id)
18 .field("local_peer_id", &self.local_peer_id)
19 .field("document_id", &self.document_id)
20 .field(
21 "initial_content",
22 &self.initial_content.as_ref().map(|_| "<Automerge>"),
23 )
24 .field("initial_connections", &self.initial_connections)
25 .finish()
26 }
27}
28
29impl SpawnArgs {
30 pub fn actor_id(&self) -> DocumentActorId {
31 self.actor_id
32 }
33
34 pub fn document_id(&self) -> &crate::DocumentId {
35 &self.document_id
36 }
37}