Skip to main content

zulip_api/message/delete_message/
request.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{field_access, impl_default, impl_display};
4
5/// Represents a delete message request to a Zulip server.
6#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
7pub struct Request {
8    #[serde(skip)]
9    message_id: u64,
10}
11
12impl Request {
13    /// Creates a new [Request].
14    pub const fn new() -> Self {
15        Self { message_id: 0 }
16    }
17}
18
19field_access! {
20    Request {
21        /// The target message's ID.
22        message_id: u64,
23    }
24}
25
26impl_default!(Request);
27impl_display!(Request);
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn test_delete_message() {
35        let message_id = 1;
36
37        let mut req = Request::new().with_message_id(message_id);
38
39        let req_json = "{}".to_string();
40
41        assert_eq!(req.message_id(), message_id);
42
43        assert_eq!(serde_json::to_string(&req).unwrap(), req_json);
44
45        req.set_message_id(0);
46        assert_eq!(serde_json::from_str::<Request>(&req_json).unwrap(), req);
47    }
48}