dwn_core/
reply.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{message::Message, store::Record};
4
5#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
6#[serde(untagged)]
7pub enum Reply {
8    ProtocolsQuery(Vec<Message>),
9    RecordsSync(Box<RecordsSyncReply>),
10    RecordsQuery(RecordsQueryReply),
11    RecordsRead(Box<RecordsReadReply>),
12}
13
14#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
15pub struct RecordsQueryReply {
16    pub entries: Vec<Message>,
17}
18
19#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
20pub struct RecordsReadReply {
21    pub entry: Option<Message>,
22}
23
24#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
25pub struct RecordsSyncReply {
26    /// Records that have conflicting latest entries.
27    pub conflict: Vec<Message>,
28    /// Records only the local has.
29    pub local_only: Vec<String>,
30    /// Records only the remote has.
31    pub remote_only: Vec<Record>,
32}