changes_stream2/
event.rs

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>, // not available on CouchDB 1.0
30}
31
32#[derive(Serialize, Deserialize, Debug, Clone)]
33pub struct Change {
34    pub rev: String,
35}