rust_tdlib/types/
view_messages.rs1use crate::errors::Result;
2use crate::types::*;
3use uuid::Uuid;
4
5#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7pub struct ViewMessages {
8 #[doc(hidden)]
9 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
10 extra: Option<String>,
11 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
12 client_id: Option<i32>,
13 #[serde(default)]
16 chat_id: i64,
17 #[serde(default)]
20 message_thread_id: i64,
21 #[serde(default)]
24 message_ids: Vec<i64>,
25 #[serde(default)]
28 force_read: bool,
29
30 #[serde(rename(serialize = "@type"))]
31 td_type: String,
32}
33
34impl RObject for ViewMessages {
35 #[doc(hidden)]
36 fn extra(&self) -> Option<&str> {
37 self.extra.as_deref()
38 }
39 #[doc(hidden)]
40 fn client_id(&self) -> Option<i32> {
41 self.client_id
42 }
43}
44
45impl RFunction for ViewMessages {}
46
47impl ViewMessages {
48 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
49 Ok(serde_json::from_str(json.as_ref())?)
50 }
51 pub fn builder() -> ViewMessagesBuilder {
52 let mut inner = ViewMessages::default();
53 inner.extra = Some(Uuid::new_v4().to_string());
54
55 inner.td_type = "viewMessages".to_string();
56
57 ViewMessagesBuilder { inner }
58 }
59
60 pub fn chat_id(&self) -> i64 {
61 self.chat_id
62 }
63
64 pub fn message_thread_id(&self) -> i64 {
65 self.message_thread_id
66 }
67
68 pub fn message_ids(&self) -> &Vec<i64> {
69 &self.message_ids
70 }
71
72 pub fn force_read(&self) -> bool {
73 self.force_read
74 }
75}
76
77#[doc(hidden)]
78pub struct ViewMessagesBuilder {
79 inner: ViewMessages,
80}
81
82#[deprecated]
83pub type RTDViewMessagesBuilder = ViewMessagesBuilder;
84
85impl ViewMessagesBuilder {
86 pub fn build(&self) -> ViewMessages {
87 self.inner.clone()
88 }
89
90 pub fn chat_id(&mut self, chat_id: i64) -> &mut Self {
91 self.inner.chat_id = chat_id;
92 self
93 }
94
95 pub fn message_thread_id(&mut self, message_thread_id: i64) -> &mut Self {
96 self.inner.message_thread_id = message_thread_id;
97 self
98 }
99
100 pub fn message_ids(&mut self, message_ids: Vec<i64>) -> &mut Self {
101 self.inner.message_ids = message_ids;
102 self
103 }
104
105 pub fn force_read(&mut self, force_read: bool) -> &mut Self {
106 self.inner.force_read = force_read;
107 self
108 }
109}
110
111impl AsRef<ViewMessages> for ViewMessages {
112 fn as_ref(&self) -> &ViewMessages {
113 self
114 }
115}
116
117impl AsRef<ViewMessages> for ViewMessagesBuilder {
118 fn as_ref(&self) -> &ViewMessages {
119 &self.inner
120 }
121}