1use serde_derive::{Deserialize, Serialize};
2use serde_json::Value;
3
4#[derive(Serialize, Deserialize, Debug)]
5pub enum Event {
6 Change(ChangeEvent),
7 Finished(FinishedEvent),
8}
9
10#[derive(Serialize, Deserialize, Debug, Clone)]
11pub struct ChangeEvent {
12 pub seq: Value,
13 pub id: String,
14 pub changes: Vec<Change>,
15
16 #[serde(default)]
17 pub deleted: bool,
18
19 #[serde(default)]
20 #[cfg(feature = "raw_value_doc")]
21 pub doc: Option<Box<serde_json::value::RawValue>>,
22 #[cfg(not(feature = "raw_value_doc"))]
23 pub doc: Option<serde_json::Map<String, Value>>,
24}
25
26#[derive(Serialize, Deserialize, Debug)]
27pub struct FinishedEvent {
28 pub last_seq: Value,
29 pub pending: Option<u64>, }
31
32#[derive(Serialize, Deserialize, Debug, Clone)]
33pub struct Change {
34 pub rev: String,
35}