nodedb_types/sync/wire/
shape.rs1use std::collections::HashMap;
6
7use serde::{Deserialize, Serialize};
8
9use crate::sync::shape::ShapeDefinition;
10
11#[derive(
13 Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
14)]
15pub struct ShapeSubscribeMsg {
16 pub shape: ShapeDefinition,
18}
19
20#[derive(
22 Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
23)]
24pub struct ShapeSnapshotMsg {
25 pub shape_id: String,
27 pub data: Vec<u8>,
29 pub snapshot_lsn: u64,
31 pub doc_count: usize,
33}
34
35#[derive(
37 Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
38)]
39pub struct ShapeDeltaMsg {
40 pub shape_id: String,
42 pub collection: String,
44 pub document_id: String,
46 pub operation: String,
48 pub delta: Vec<u8>,
50 pub lsn: u64,
52}
53
54#[derive(
56 Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
57)]
58pub struct ShapeUnsubscribeMsg {
59 pub shape_id: String,
60}
61
62#[derive(
64 Debug, Clone, Serialize, Deserialize, zerompk::ToMessagePack, zerompk::FromMessagePack,
65)]
66pub struct VectorClockSyncMsg {
67 pub clocks: HashMap<String, u64>,
69 pub sender_id: u64,
71}