rust_tdlib/types/
check_sticker_set_name_result.rs

1use crate::errors::Result;
2use crate::types::*;
3use uuid::Uuid;
4
5use std::fmt::Debug;
6
7/// Represents result of checking whether a name can be used for a new sticker set
8pub trait TDCheckStickerSetNameResult: Debug + RObject {}
9
10/// Represents result of checking whether a name can be used for a new sticker set
11#[derive(Debug, Clone, Deserialize, Serialize, Default)]
12#[serde(tag = "@type")]
13pub enum CheckStickerSetNameResult {
14    #[doc(hidden)]
15    #[default]
16    _Default,
17    /// Checks whether a name can be used for a new sticker set
18    #[serde(rename = "checkStickerSetName")]
19    CheckStickerSetName(CheckStickerSetName),
20    /// The name is invalid
21    #[serde(rename = "checkStickerSetNameResultNameInvalid")]
22    NameInvalid(CheckStickerSetNameResultNameInvalid),
23    /// The name is occupied
24    #[serde(rename = "checkStickerSetNameResultNameOccupied")]
25    NameOccupied(CheckStickerSetNameResultNameOccupied),
26    /// The name can be set
27    #[serde(rename = "checkStickerSetNameResultOk")]
28    Ok(CheckStickerSetNameResultOk),
29}
30
31impl RObject for CheckStickerSetNameResult {
32    #[doc(hidden)]
33    fn extra(&self) -> Option<&str> {
34        match self {
35            CheckStickerSetNameResult::CheckStickerSetName(t) => t.extra(),
36            CheckStickerSetNameResult::NameInvalid(t) => t.extra(),
37            CheckStickerSetNameResult::NameOccupied(t) => t.extra(),
38            CheckStickerSetNameResult::Ok(t) => t.extra(),
39
40            _ => None,
41        }
42    }
43    #[doc(hidden)]
44    fn client_id(&self) -> Option<i32> {
45        match self {
46            CheckStickerSetNameResult::CheckStickerSetName(t) => t.client_id(),
47            CheckStickerSetNameResult::NameInvalid(t) => t.client_id(),
48            CheckStickerSetNameResult::NameOccupied(t) => t.client_id(),
49            CheckStickerSetNameResult::Ok(t) => t.client_id(),
50
51            _ => None,
52        }
53    }
54}
55
56impl CheckStickerSetNameResult {
57    pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
58        Ok(serde_json::from_str(json.as_ref())?)
59    }
60    #[doc(hidden)]
61    pub fn _is_default(&self) -> bool {
62        matches!(self, CheckStickerSetNameResult::_Default)
63    }
64}
65
66impl AsRef<CheckStickerSetNameResult> for CheckStickerSetNameResult {
67    fn as_ref(&self) -> &CheckStickerSetNameResult {
68        self
69    }
70}
71
72/// The name is invalid
73#[derive(Debug, Clone, Default, Serialize, Deserialize)]
74pub struct CheckStickerSetNameResultNameInvalid {
75    #[doc(hidden)]
76    #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
77    extra: Option<String>,
78    #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
79    client_id: Option<i32>,
80}
81
82impl RObject for CheckStickerSetNameResultNameInvalid {
83    #[doc(hidden)]
84    fn extra(&self) -> Option<&str> {
85        self.extra.as_deref()
86    }
87    #[doc(hidden)]
88    fn client_id(&self) -> Option<i32> {
89        self.client_id
90    }
91}
92
93impl TDCheckStickerSetNameResult for CheckStickerSetNameResultNameInvalid {}
94
95impl CheckStickerSetNameResultNameInvalid {
96    pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
97        Ok(serde_json::from_str(json.as_ref())?)
98    }
99    pub fn builder() -> CheckStickerSetNameResultNameInvalidBuilder {
100        let mut inner = CheckStickerSetNameResultNameInvalid::default();
101        inner.extra = Some(Uuid::new_v4().to_string());
102
103        CheckStickerSetNameResultNameInvalidBuilder { inner }
104    }
105}
106
107#[doc(hidden)]
108pub struct CheckStickerSetNameResultNameInvalidBuilder {
109    inner: CheckStickerSetNameResultNameInvalid,
110}
111
112#[deprecated]
113pub type RTDCheckStickerSetNameResultNameInvalidBuilder =
114    CheckStickerSetNameResultNameInvalidBuilder;
115
116impl CheckStickerSetNameResultNameInvalidBuilder {
117    pub fn build(&self) -> CheckStickerSetNameResultNameInvalid {
118        self.inner.clone()
119    }
120}
121
122impl AsRef<CheckStickerSetNameResultNameInvalid> for CheckStickerSetNameResultNameInvalid {
123    fn as_ref(&self) -> &CheckStickerSetNameResultNameInvalid {
124        self
125    }
126}
127
128impl AsRef<CheckStickerSetNameResultNameInvalid> for CheckStickerSetNameResultNameInvalidBuilder {
129    fn as_ref(&self) -> &CheckStickerSetNameResultNameInvalid {
130        &self.inner
131    }
132}
133
134/// The name is occupied
135#[derive(Debug, Clone, Default, Serialize, Deserialize)]
136pub struct CheckStickerSetNameResultNameOccupied {
137    #[doc(hidden)]
138    #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
139    extra: Option<String>,
140    #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
141    client_id: Option<i32>,
142}
143
144impl RObject for CheckStickerSetNameResultNameOccupied {
145    #[doc(hidden)]
146    fn extra(&self) -> Option<&str> {
147        self.extra.as_deref()
148    }
149    #[doc(hidden)]
150    fn client_id(&self) -> Option<i32> {
151        self.client_id
152    }
153}
154
155impl TDCheckStickerSetNameResult for CheckStickerSetNameResultNameOccupied {}
156
157impl CheckStickerSetNameResultNameOccupied {
158    pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
159        Ok(serde_json::from_str(json.as_ref())?)
160    }
161    pub fn builder() -> CheckStickerSetNameResultNameOccupiedBuilder {
162        let mut inner = CheckStickerSetNameResultNameOccupied::default();
163        inner.extra = Some(Uuid::new_v4().to_string());
164
165        CheckStickerSetNameResultNameOccupiedBuilder { inner }
166    }
167}
168
169#[doc(hidden)]
170pub struct CheckStickerSetNameResultNameOccupiedBuilder {
171    inner: CheckStickerSetNameResultNameOccupied,
172}
173
174#[deprecated]
175pub type RTDCheckStickerSetNameResultNameOccupiedBuilder =
176    CheckStickerSetNameResultNameOccupiedBuilder;
177
178impl CheckStickerSetNameResultNameOccupiedBuilder {
179    pub fn build(&self) -> CheckStickerSetNameResultNameOccupied {
180        self.inner.clone()
181    }
182}
183
184impl AsRef<CheckStickerSetNameResultNameOccupied> for CheckStickerSetNameResultNameOccupied {
185    fn as_ref(&self) -> &CheckStickerSetNameResultNameOccupied {
186        self
187    }
188}
189
190impl AsRef<CheckStickerSetNameResultNameOccupied> for CheckStickerSetNameResultNameOccupiedBuilder {
191    fn as_ref(&self) -> &CheckStickerSetNameResultNameOccupied {
192        &self.inner
193    }
194}
195
196/// The name can be set
197#[derive(Debug, Clone, Default, Serialize, Deserialize)]
198pub struct CheckStickerSetNameResultOk {
199    #[doc(hidden)]
200    #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
201    extra: Option<String>,
202    #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
203    client_id: Option<i32>,
204}
205
206impl RObject for CheckStickerSetNameResultOk {
207    #[doc(hidden)]
208    fn extra(&self) -> Option<&str> {
209        self.extra.as_deref()
210    }
211    #[doc(hidden)]
212    fn client_id(&self) -> Option<i32> {
213        self.client_id
214    }
215}
216
217impl TDCheckStickerSetNameResult for CheckStickerSetNameResultOk {}
218
219impl CheckStickerSetNameResultOk {
220    pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
221        Ok(serde_json::from_str(json.as_ref())?)
222    }
223    pub fn builder() -> CheckStickerSetNameResultOkBuilder {
224        let mut inner = CheckStickerSetNameResultOk::default();
225        inner.extra = Some(Uuid::new_v4().to_string());
226
227        CheckStickerSetNameResultOkBuilder { inner }
228    }
229}
230
231#[doc(hidden)]
232pub struct CheckStickerSetNameResultOkBuilder {
233    inner: CheckStickerSetNameResultOk,
234}
235
236#[deprecated]
237pub type RTDCheckStickerSetNameResultOkBuilder = CheckStickerSetNameResultOkBuilder;
238
239impl CheckStickerSetNameResultOkBuilder {
240    pub fn build(&self) -> CheckStickerSetNameResultOk {
241        self.inner.clone()
242    }
243}
244
245impl AsRef<CheckStickerSetNameResultOk> for CheckStickerSetNameResultOk {
246    fn as_ref(&self) -> &CheckStickerSetNameResultOk {
247        self
248    }
249}
250
251impl AsRef<CheckStickerSetNameResultOk> for CheckStickerSetNameResultOkBuilder {
252    fn as_ref(&self) -> &CheckStickerSetNameResultOk {
253        &self.inner
254    }
255}