rust_tdlib/types/
answer_callback_query.rs1use crate::errors::Result;
2use crate::types::*;
3use uuid::Uuid;
4
5#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7pub struct AnswerCallbackQuery {
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(
16 deserialize_with = "super::_common::number_from_string",
17 serialize_with = "super::_common::string_to_number"
18 )]
19 #[serde(default)]
20 callback_query_id: i64,
21 #[serde(default)]
24 text: String,
25 #[serde(default)]
28 show_alert: bool,
29 #[serde(default)]
32 url: String,
33 #[serde(default)]
36 cache_time: i32,
37
38 #[serde(rename(serialize = "@type"))]
39 td_type: String,
40}
41
42impl RObject for AnswerCallbackQuery {
43 #[doc(hidden)]
44 fn extra(&self) -> Option<&str> {
45 self.extra.as_deref()
46 }
47 #[doc(hidden)]
48 fn client_id(&self) -> Option<i32> {
49 self.client_id
50 }
51}
52
53impl RFunction for AnswerCallbackQuery {}
54
55impl AnswerCallbackQuery {
56 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
57 Ok(serde_json::from_str(json.as_ref())?)
58 }
59 pub fn builder() -> AnswerCallbackQueryBuilder {
60 let mut inner = AnswerCallbackQuery::default();
61 inner.extra = Some(Uuid::new_v4().to_string());
62
63 inner.td_type = "answerCallbackQuery".to_string();
64
65 AnswerCallbackQueryBuilder { inner }
66 }
67
68 pub fn callback_query_id(&self) -> i64 {
69 self.callback_query_id
70 }
71
72 pub fn text(&self) -> &String {
73 &self.text
74 }
75
76 pub fn show_alert(&self) -> bool {
77 self.show_alert
78 }
79
80 pub fn url(&self) -> &String {
81 &self.url
82 }
83
84 pub fn cache_time(&self) -> i32 {
85 self.cache_time
86 }
87}
88
89#[doc(hidden)]
90pub struct AnswerCallbackQueryBuilder {
91 inner: AnswerCallbackQuery,
92}
93
94#[deprecated]
95pub type RTDAnswerCallbackQueryBuilder = AnswerCallbackQueryBuilder;
96
97impl AnswerCallbackQueryBuilder {
98 pub fn build(&self) -> AnswerCallbackQuery {
99 self.inner.clone()
100 }
101
102 pub fn callback_query_id(&mut self, callback_query_id: i64) -> &mut Self {
103 self.inner.callback_query_id = callback_query_id;
104 self
105 }
106
107 pub fn text<T: AsRef<str>>(&mut self, text: T) -> &mut Self {
108 self.inner.text = text.as_ref().to_string();
109 self
110 }
111
112 pub fn show_alert(&mut self, show_alert: bool) -> &mut Self {
113 self.inner.show_alert = show_alert;
114 self
115 }
116
117 pub fn url<T: AsRef<str>>(&mut self, url: T) -> &mut Self {
118 self.inner.url = url.as_ref().to_string();
119 self
120 }
121
122 pub fn cache_time(&mut self, cache_time: i32) -> &mut Self {
123 self.inner.cache_time = cache_time;
124 self
125 }
126}
127
128impl AsRef<AnswerCallbackQuery> for AnswerCallbackQuery {
129 fn as_ref(&self) -> &AnswerCallbackQuery {
130 self
131 }
132}
133
134impl AsRef<AnswerCallbackQuery> for AnswerCallbackQueryBuilder {
135 fn as_ref(&self) -> &AnswerCallbackQuery {
136 &self.inner
137 }
138}