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