redust/model/stream/
claim.rs1use serde::{Deserialize, Serialize};
2
3use super::{read::Entries, Id};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7pub struct AutoclaimResponse<'a>(
8 pub Id,
10 #[serde(borrow)]
12 pub Entries<'a>,
13 #[serde(default)]
15 pub Vec<Id>,
16);
17
18#[cfg(test)]
19mod test {
20 use redust_resp::from_bytes;
21
22 use crate::model::stream::{
23 read::{Entries, Entry, Field, Value},
24 Id,
25 };
26
27 use super::AutoclaimResponse;
28
29 #[test]
30 fn de() {
31 let data =
32 b"*3\r\n+0-0\r\n*1\r\n*2\r\n+1234-5678\r\n*2\r\n$5\r\nfield\r\n$5\r\nvalue\r\n*0\r\n";
33
34 let (res, rem) = from_bytes::<AutoclaimResponse>(data).unwrap();
35 let mut entries = Entries::default();
36 let mut entry = Entry::new();
37
38 let field = Field(b"field"[..].into());
39 let value = Value(b"value"[..].into());
40 entry.insert(field, value);
41
42 entries.0.insert(Id(1234, 5678), entry);
43
44 assert_eq!(res, AutoclaimResponse(Id(0, 0), entries, Vec::new()));
45 assert_eq!(rem, []);
46 }
47}