pn_delta/
protocol.rs
1use std::fmt::Debug;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash)]
6pub struct Timestamped<T: Debug> {
7 pub timestamp: isize,
8 pub data: T,
9}
10
11#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash)]
12pub enum TopolotreeMessage {
13 Payload(Payload<i64>),
14 Ping(),
15 Pong(),
16}
17
18#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash)]
19pub struct Payload<T: Debug> {
20 pub key: u64,
21 pub contents: Timestamped<T>,
22}
23
24#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
25pub struct OperationPayload {
26 pub key: u64,
27 pub change: i64,
28}
29
30#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Hash)]
31pub struct QueryResponse {
32 pub key: u64,
33 pub value: i64,
34}