zulip_api/message/mark_stream_as_read/
request.rs1use serde::{Deserialize, Serialize};
2
3use crate::{field_access, impl_default, impl_display};
4
5#[derive(Clone, Copy, Debug, Eq, PartialEq, Deserialize, Serialize)]
9pub struct Request {
10 stream_id: u64,
11}
12
13impl Request {
14 pub const fn new() -> Self {
16 Self { stream_id: 0 }
17 }
18}
19
20field_access! {
21 Request {
22 stream_id: u64,
24 }
25}
26
27impl_default!(Request);
28impl_display!(Request);
29
30#[cfg(test)]
31mod tests {
32 use super::*;
33
34 #[test]
35 fn test_request() {
36 let stream_id = 1;
37
38 let request = Request::new().with_stream_id(stream_id);
39 let request_json = request.to_string();
40
41 assert_eq!(serde_json::to_string(&request).unwrap(), request_json);
42 assert_eq!(
43 serde_json::from_str::<Request>(&request_json).unwrap(),
44 request
45 );
46
47 assert_eq!(request.stream_id(), stream_id);
48 }
49}