rtdlib/types/
input_passport_element_error_source.rs

1
2use crate::types::*;
3use crate::errors::*;
4use uuid::Uuid;
5
6
7
8
9use std::fmt::Debug;
10use serde::de::{Deserialize, Deserializer};
11
12
13
14/// TRAIT | Contains the description of an error in a Telegram Passport element; for bots only
15pub trait TDInputPassportElementErrorSource: Debug + RObject {}
16
17/// Contains the description of an error in a Telegram Passport element; for bots only
18#[derive(Debug, Clone, Serialize)]
19#[serde(untagged)]
20pub enum InputPassportElementErrorSource {
21  #[doc(hidden)] _Default(()),
22  /// A data field contains an error. The error is considered resolved when the field's value changes
23  DataField(InputPassportElementErrorSourceDataField),
24  /// The file contains an error. The error is considered resolved when the file changes
25  File(InputPassportElementErrorSourceFile),
26  /// The list of attached files contains an error. The error is considered resolved when the file list changes
27  Files(InputPassportElementErrorSourceFiles),
28  /// The front side of the document contains an error. The error is considered resolved when the file with the front side of the document changes
29  FrontSide(InputPassportElementErrorSourceFrontSide),
30  /// The reverse side of the document contains an error. The error is considered resolved when the file with the reverse side of the document changes
31  ReverseSide(InputPassportElementErrorSourceReverseSide),
32  /// The selfie contains an error. The error is considered resolved when the file with the selfie changes
33  Selfie(InputPassportElementErrorSourceSelfie),
34  /// One of the files containing the translation of the document contains an error. The error is considered resolved when the file with the translation changes
35  TranslationFile(InputPassportElementErrorSourceTranslationFile),
36  /// The translation of the document contains an error. The error is considered resolved when the list of files changes
37  TranslationFiles(InputPassportElementErrorSourceTranslationFiles),
38  /// The element contains an error in an unspecified place. The error will be considered resolved when new data is added
39  Unspecified(InputPassportElementErrorSourceUnspecified),
40
41}
42
43impl Default for InputPassportElementErrorSource {
44  fn default() -> Self { InputPassportElementErrorSource::_Default(()) }
45}
46
47impl<'de> Deserialize<'de> for InputPassportElementErrorSource {
48  fn deserialize<D>(deserializer: D) -> Result<InputPassportElementErrorSource, D::Error> where D: Deserializer<'de> {
49    use serde::de::Error;
50    rtd_enum_deserialize!(
51      InputPassportElementErrorSource,
52      (inputPassportElementErrorSourceDataField, DataField);
53      (inputPassportElementErrorSourceFile, File);
54      (inputPassportElementErrorSourceFiles, Files);
55      (inputPassportElementErrorSourceFrontSide, FrontSide);
56      (inputPassportElementErrorSourceReverseSide, ReverseSide);
57      (inputPassportElementErrorSourceSelfie, Selfie);
58      (inputPassportElementErrorSourceTranslationFile, TranslationFile);
59      (inputPassportElementErrorSourceTranslationFiles, TranslationFiles);
60      (inputPassportElementErrorSourceUnspecified, Unspecified);
61
62    )(deserializer)
63  }
64}
65
66impl RObject for InputPassportElementErrorSource {
67  #[doc(hidden)] fn td_name(&self) -> &'static str {
68    match self {
69      InputPassportElementErrorSource::DataField(t) => t.td_name(),
70      InputPassportElementErrorSource::File(t) => t.td_name(),
71      InputPassportElementErrorSource::Files(t) => t.td_name(),
72      InputPassportElementErrorSource::FrontSide(t) => t.td_name(),
73      InputPassportElementErrorSource::ReverseSide(t) => t.td_name(),
74      InputPassportElementErrorSource::Selfie(t) => t.td_name(),
75      InputPassportElementErrorSource::TranslationFile(t) => t.td_name(),
76      InputPassportElementErrorSource::TranslationFiles(t) => t.td_name(),
77      InputPassportElementErrorSource::Unspecified(t) => t.td_name(),
78
79      _ => "-1",
80    }
81  }
82  #[doc(hidden)] fn extra(&self) -> Option<String> {
83    match self {
84      InputPassportElementErrorSource::DataField(t) => t.extra(),
85      InputPassportElementErrorSource::File(t) => t.extra(),
86      InputPassportElementErrorSource::Files(t) => t.extra(),
87      InputPassportElementErrorSource::FrontSide(t) => t.extra(),
88      InputPassportElementErrorSource::ReverseSide(t) => t.extra(),
89      InputPassportElementErrorSource::Selfie(t) => t.extra(),
90      InputPassportElementErrorSource::TranslationFile(t) => t.extra(),
91      InputPassportElementErrorSource::TranslationFiles(t) => t.extra(),
92      InputPassportElementErrorSource::Unspecified(t) => t.extra(),
93
94      _ => None,
95    }
96  }
97  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
98}
99
100impl InputPassportElementErrorSource {
101  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
102  #[doc(hidden)] pub fn _is_default(&self) -> bool { if let InputPassportElementErrorSource::_Default(_) = self { true } else { false } }
103
104  pub fn is_data_field(&self) -> bool { if let InputPassportElementErrorSource::DataField(_) = self { true } else { false } }
105  pub fn is_file(&self) -> bool { if let InputPassportElementErrorSource::File(_) = self { true } else { false } }
106  pub fn is_files(&self) -> bool { if let InputPassportElementErrorSource::Files(_) = self { true } else { false } }
107  pub fn is_front_side(&self) -> bool { if let InputPassportElementErrorSource::FrontSide(_) = self { true } else { false } }
108  pub fn is_reverse_side(&self) -> bool { if let InputPassportElementErrorSource::ReverseSide(_) = self { true } else { false } }
109  pub fn is_selfie(&self) -> bool { if let InputPassportElementErrorSource::Selfie(_) = self { true } else { false } }
110  pub fn is_translation_file(&self) -> bool { if let InputPassportElementErrorSource::TranslationFile(_) = self { true } else { false } }
111  pub fn is_translation_files(&self) -> bool { if let InputPassportElementErrorSource::TranslationFiles(_) = self { true } else { false } }
112  pub fn is_unspecified(&self) -> bool { if let InputPassportElementErrorSource::Unspecified(_) = self { true } else { false } }
113
114  pub fn on_data_field<F: FnOnce(&InputPassportElementErrorSourceDataField)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::DataField(t) = self { fnc(t) }; self }
115  pub fn on_file<F: FnOnce(&InputPassportElementErrorSourceFile)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::File(t) = self { fnc(t) }; self }
116  pub fn on_files<F: FnOnce(&InputPassportElementErrorSourceFiles)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::Files(t) = self { fnc(t) }; self }
117  pub fn on_front_side<F: FnOnce(&InputPassportElementErrorSourceFrontSide)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::FrontSide(t) = self { fnc(t) }; self }
118  pub fn on_reverse_side<F: FnOnce(&InputPassportElementErrorSourceReverseSide)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::ReverseSide(t) = self { fnc(t) }; self }
119  pub fn on_selfie<F: FnOnce(&InputPassportElementErrorSourceSelfie)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::Selfie(t) = self { fnc(t) }; self }
120  pub fn on_translation_file<F: FnOnce(&InputPassportElementErrorSourceTranslationFile)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::TranslationFile(t) = self { fnc(t) }; self }
121  pub fn on_translation_files<F: FnOnce(&InputPassportElementErrorSourceTranslationFiles)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::TranslationFiles(t) = self { fnc(t) }; self }
122  pub fn on_unspecified<F: FnOnce(&InputPassportElementErrorSourceUnspecified)>(&self, fnc: F) -> &Self { if let InputPassportElementErrorSource::Unspecified(t) = self { fnc(t) }; self }
123
124  pub fn as_data_field(&self) -> Option<&InputPassportElementErrorSourceDataField> { if let InputPassportElementErrorSource::DataField(t) = self { return Some(t) } None }
125  pub fn as_file(&self) -> Option<&InputPassportElementErrorSourceFile> { if let InputPassportElementErrorSource::File(t) = self { return Some(t) } None }
126  pub fn as_files(&self) -> Option<&InputPassportElementErrorSourceFiles> { if let InputPassportElementErrorSource::Files(t) = self { return Some(t) } None }
127  pub fn as_front_side(&self) -> Option<&InputPassportElementErrorSourceFrontSide> { if let InputPassportElementErrorSource::FrontSide(t) = self { return Some(t) } None }
128  pub fn as_reverse_side(&self) -> Option<&InputPassportElementErrorSourceReverseSide> { if let InputPassportElementErrorSource::ReverseSide(t) = self { return Some(t) } None }
129  pub fn as_selfie(&self) -> Option<&InputPassportElementErrorSourceSelfie> { if let InputPassportElementErrorSource::Selfie(t) = self { return Some(t) } None }
130  pub fn as_translation_file(&self) -> Option<&InputPassportElementErrorSourceTranslationFile> { if let InputPassportElementErrorSource::TranslationFile(t) = self { return Some(t) } None }
131  pub fn as_translation_files(&self) -> Option<&InputPassportElementErrorSourceTranslationFiles> { if let InputPassportElementErrorSource::TranslationFiles(t) = self { return Some(t) } None }
132  pub fn as_unspecified(&self) -> Option<&InputPassportElementErrorSourceUnspecified> { if let InputPassportElementErrorSource::Unspecified(t) = self { return Some(t) } None }
133
134
135
136  pub fn data_field<T: AsRef<InputPassportElementErrorSourceDataField>>(t: T) -> Self { InputPassportElementErrorSource::DataField(t.as_ref().clone()) }
137
138  pub fn file<T: AsRef<InputPassportElementErrorSourceFile>>(t: T) -> Self { InputPassportElementErrorSource::File(t.as_ref().clone()) }
139
140  pub fn files<T: AsRef<InputPassportElementErrorSourceFiles>>(t: T) -> Self { InputPassportElementErrorSource::Files(t.as_ref().clone()) }
141
142  pub fn front_side<T: AsRef<InputPassportElementErrorSourceFrontSide>>(t: T) -> Self { InputPassportElementErrorSource::FrontSide(t.as_ref().clone()) }
143
144  pub fn reverse_side<T: AsRef<InputPassportElementErrorSourceReverseSide>>(t: T) -> Self { InputPassportElementErrorSource::ReverseSide(t.as_ref().clone()) }
145
146  pub fn selfie<T: AsRef<InputPassportElementErrorSourceSelfie>>(t: T) -> Self { InputPassportElementErrorSource::Selfie(t.as_ref().clone()) }
147
148  pub fn translation_file<T: AsRef<InputPassportElementErrorSourceTranslationFile>>(t: T) -> Self { InputPassportElementErrorSource::TranslationFile(t.as_ref().clone()) }
149
150  pub fn translation_files<T: AsRef<InputPassportElementErrorSourceTranslationFiles>>(t: T) -> Self { InputPassportElementErrorSource::TranslationFiles(t.as_ref().clone()) }
151
152  pub fn unspecified<T: AsRef<InputPassportElementErrorSourceUnspecified>>(t: T) -> Self { InputPassportElementErrorSource::Unspecified(t.as_ref().clone()) }
153
154}
155
156impl AsRef<InputPassportElementErrorSource> for InputPassportElementErrorSource {
157  fn as_ref(&self) -> &InputPassportElementErrorSource { self }
158}
159
160
161
162
163
164
165
166/// A data field contains an error. The error is considered resolved when the field's value changes
167#[derive(Debug, Clone, Default, Serialize, Deserialize)]
168pub struct InputPassportElementErrorSourceDataField {
169  #[doc(hidden)]
170  #[serde(rename(serialize = "@type", deserialize = "@type"))]
171  td_name: String,
172  #[doc(hidden)]
173  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
174  extra: Option<String>,
175  /// Field name
176  field_name: String,
177  /// Current data hash
178  data_hash: String,
179  
180}
181
182impl RObject for InputPassportElementErrorSourceDataField {
183  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceDataField" }
184  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
185  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
186}
187
188
189impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceDataField {}
190
191
192
193impl InputPassportElementErrorSourceDataField {
194  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
195  pub fn builder() -> RTDInputPassportElementErrorSourceDataFieldBuilder {
196    let mut inner = InputPassportElementErrorSourceDataField::default();
197    inner.td_name = "inputPassportElementErrorSourceDataField".to_string();
198    inner.extra = Some(Uuid::new_v4().to_string());
199    RTDInputPassportElementErrorSourceDataFieldBuilder { inner }
200  }
201
202  pub fn field_name(&self) -> &String { &self.field_name }
203
204  pub fn data_hash(&self) -> &String { &self.data_hash }
205
206}
207
208#[doc(hidden)]
209pub struct RTDInputPassportElementErrorSourceDataFieldBuilder {
210  inner: InputPassportElementErrorSourceDataField
211}
212
213impl RTDInputPassportElementErrorSourceDataFieldBuilder {
214  pub fn build(&self) -> InputPassportElementErrorSourceDataField { self.inner.clone() }
215
216   
217  pub fn field_name<T: AsRef<str>>(&mut self, field_name: T) -> &mut Self {
218    self.inner.field_name = field_name.as_ref().to_string();
219    self
220  }
221
222   
223  pub fn data_hash<T: AsRef<str>>(&mut self, data_hash: T) -> &mut Self {
224    self.inner.data_hash = data_hash.as_ref().to_string();
225    self
226  }
227
228}
229
230impl AsRef<InputPassportElementErrorSourceDataField> for InputPassportElementErrorSourceDataField {
231  fn as_ref(&self) -> &InputPassportElementErrorSourceDataField { self }
232}
233
234impl AsRef<InputPassportElementErrorSourceDataField> for RTDInputPassportElementErrorSourceDataFieldBuilder {
235  fn as_ref(&self) -> &InputPassportElementErrorSourceDataField { &self.inner }
236}
237
238
239
240
241
242
243
244/// The file contains an error. The error is considered resolved when the file changes
245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
246pub struct InputPassportElementErrorSourceFile {
247  #[doc(hidden)]
248  #[serde(rename(serialize = "@type", deserialize = "@type"))]
249  td_name: String,
250  #[doc(hidden)]
251  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
252  extra: Option<String>,
253  /// Current hash of the file which has the error
254  file_hash: String,
255  
256}
257
258impl RObject for InputPassportElementErrorSourceFile {
259  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceFile" }
260  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
261  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
262}
263
264
265impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceFile {}
266
267
268
269impl InputPassportElementErrorSourceFile {
270  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
271  pub fn builder() -> RTDInputPassportElementErrorSourceFileBuilder {
272    let mut inner = InputPassportElementErrorSourceFile::default();
273    inner.td_name = "inputPassportElementErrorSourceFile".to_string();
274    inner.extra = Some(Uuid::new_v4().to_string());
275    RTDInputPassportElementErrorSourceFileBuilder { inner }
276  }
277
278  pub fn file_hash(&self) -> &String { &self.file_hash }
279
280}
281
282#[doc(hidden)]
283pub struct RTDInputPassportElementErrorSourceFileBuilder {
284  inner: InputPassportElementErrorSourceFile
285}
286
287impl RTDInputPassportElementErrorSourceFileBuilder {
288  pub fn build(&self) -> InputPassportElementErrorSourceFile { self.inner.clone() }
289
290   
291  pub fn file_hash<T: AsRef<str>>(&mut self, file_hash: T) -> &mut Self {
292    self.inner.file_hash = file_hash.as_ref().to_string();
293    self
294  }
295
296}
297
298impl AsRef<InputPassportElementErrorSourceFile> for InputPassportElementErrorSourceFile {
299  fn as_ref(&self) -> &InputPassportElementErrorSourceFile { self }
300}
301
302impl AsRef<InputPassportElementErrorSourceFile> for RTDInputPassportElementErrorSourceFileBuilder {
303  fn as_ref(&self) -> &InputPassportElementErrorSourceFile { &self.inner }
304}
305
306
307
308
309
310
311
312/// The list of attached files contains an error. The error is considered resolved when the file list changes
313#[derive(Debug, Clone, Default, Serialize, Deserialize)]
314pub struct InputPassportElementErrorSourceFiles {
315  #[doc(hidden)]
316  #[serde(rename(serialize = "@type", deserialize = "@type"))]
317  td_name: String,
318  #[doc(hidden)]
319  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
320  extra: Option<String>,
321  /// Current hashes of all attached files
322  file_hashes: Vec<String>,
323  
324}
325
326impl RObject for InputPassportElementErrorSourceFiles {
327  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceFiles" }
328  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
329  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
330}
331
332
333impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceFiles {}
334
335
336
337impl InputPassportElementErrorSourceFiles {
338  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
339  pub fn builder() -> RTDInputPassportElementErrorSourceFilesBuilder {
340    let mut inner = InputPassportElementErrorSourceFiles::default();
341    inner.td_name = "inputPassportElementErrorSourceFiles".to_string();
342    inner.extra = Some(Uuid::new_v4().to_string());
343    RTDInputPassportElementErrorSourceFilesBuilder { inner }
344  }
345
346  pub fn file_hashes(&self) -> &Vec<String> { &self.file_hashes }
347
348}
349
350#[doc(hidden)]
351pub struct RTDInputPassportElementErrorSourceFilesBuilder {
352  inner: InputPassportElementErrorSourceFiles
353}
354
355impl RTDInputPassportElementErrorSourceFilesBuilder {
356  pub fn build(&self) -> InputPassportElementErrorSourceFiles { self.inner.clone() }
357
358   
359  pub fn file_hashes(&mut self, file_hashes: Vec<String>) -> &mut Self {
360    self.inner.file_hashes = file_hashes;
361    self
362  }
363
364}
365
366impl AsRef<InputPassportElementErrorSourceFiles> for InputPassportElementErrorSourceFiles {
367  fn as_ref(&self) -> &InputPassportElementErrorSourceFiles { self }
368}
369
370impl AsRef<InputPassportElementErrorSourceFiles> for RTDInputPassportElementErrorSourceFilesBuilder {
371  fn as_ref(&self) -> &InputPassportElementErrorSourceFiles { &self.inner }
372}
373
374
375
376
377
378
379
380/// The front side of the document contains an error. The error is considered resolved when the file with the front side of the document changes
381#[derive(Debug, Clone, Default, Serialize, Deserialize)]
382pub struct InputPassportElementErrorSourceFrontSide {
383  #[doc(hidden)]
384  #[serde(rename(serialize = "@type", deserialize = "@type"))]
385  td_name: String,
386  #[doc(hidden)]
387  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
388  extra: Option<String>,
389  /// Current hash of the file containing the front side
390  file_hash: String,
391  
392}
393
394impl RObject for InputPassportElementErrorSourceFrontSide {
395  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceFrontSide" }
396  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
397  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
398}
399
400
401impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceFrontSide {}
402
403
404
405impl InputPassportElementErrorSourceFrontSide {
406  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
407  pub fn builder() -> RTDInputPassportElementErrorSourceFrontSideBuilder {
408    let mut inner = InputPassportElementErrorSourceFrontSide::default();
409    inner.td_name = "inputPassportElementErrorSourceFrontSide".to_string();
410    inner.extra = Some(Uuid::new_v4().to_string());
411    RTDInputPassportElementErrorSourceFrontSideBuilder { inner }
412  }
413
414  pub fn file_hash(&self) -> &String { &self.file_hash }
415
416}
417
418#[doc(hidden)]
419pub struct RTDInputPassportElementErrorSourceFrontSideBuilder {
420  inner: InputPassportElementErrorSourceFrontSide
421}
422
423impl RTDInputPassportElementErrorSourceFrontSideBuilder {
424  pub fn build(&self) -> InputPassportElementErrorSourceFrontSide { self.inner.clone() }
425
426   
427  pub fn file_hash<T: AsRef<str>>(&mut self, file_hash: T) -> &mut Self {
428    self.inner.file_hash = file_hash.as_ref().to_string();
429    self
430  }
431
432}
433
434impl AsRef<InputPassportElementErrorSourceFrontSide> for InputPassportElementErrorSourceFrontSide {
435  fn as_ref(&self) -> &InputPassportElementErrorSourceFrontSide { self }
436}
437
438impl AsRef<InputPassportElementErrorSourceFrontSide> for RTDInputPassportElementErrorSourceFrontSideBuilder {
439  fn as_ref(&self) -> &InputPassportElementErrorSourceFrontSide { &self.inner }
440}
441
442
443
444
445
446
447
448/// The reverse side of the document contains an error. The error is considered resolved when the file with the reverse side of the document changes
449#[derive(Debug, Clone, Default, Serialize, Deserialize)]
450pub struct InputPassportElementErrorSourceReverseSide {
451  #[doc(hidden)]
452  #[serde(rename(serialize = "@type", deserialize = "@type"))]
453  td_name: String,
454  #[doc(hidden)]
455  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
456  extra: Option<String>,
457  /// Current hash of the file containing the reverse side
458  file_hash: String,
459  
460}
461
462impl RObject for InputPassportElementErrorSourceReverseSide {
463  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceReverseSide" }
464  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
465  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
466}
467
468
469impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceReverseSide {}
470
471
472
473impl InputPassportElementErrorSourceReverseSide {
474  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
475  pub fn builder() -> RTDInputPassportElementErrorSourceReverseSideBuilder {
476    let mut inner = InputPassportElementErrorSourceReverseSide::default();
477    inner.td_name = "inputPassportElementErrorSourceReverseSide".to_string();
478    inner.extra = Some(Uuid::new_v4().to_string());
479    RTDInputPassportElementErrorSourceReverseSideBuilder { inner }
480  }
481
482  pub fn file_hash(&self) -> &String { &self.file_hash }
483
484}
485
486#[doc(hidden)]
487pub struct RTDInputPassportElementErrorSourceReverseSideBuilder {
488  inner: InputPassportElementErrorSourceReverseSide
489}
490
491impl RTDInputPassportElementErrorSourceReverseSideBuilder {
492  pub fn build(&self) -> InputPassportElementErrorSourceReverseSide { self.inner.clone() }
493
494   
495  pub fn file_hash<T: AsRef<str>>(&mut self, file_hash: T) -> &mut Self {
496    self.inner.file_hash = file_hash.as_ref().to_string();
497    self
498  }
499
500}
501
502impl AsRef<InputPassportElementErrorSourceReverseSide> for InputPassportElementErrorSourceReverseSide {
503  fn as_ref(&self) -> &InputPassportElementErrorSourceReverseSide { self }
504}
505
506impl AsRef<InputPassportElementErrorSourceReverseSide> for RTDInputPassportElementErrorSourceReverseSideBuilder {
507  fn as_ref(&self) -> &InputPassportElementErrorSourceReverseSide { &self.inner }
508}
509
510
511
512
513
514
515
516/// The selfie contains an error. The error is considered resolved when the file with the selfie changes
517#[derive(Debug, Clone, Default, Serialize, Deserialize)]
518pub struct InputPassportElementErrorSourceSelfie {
519  #[doc(hidden)]
520  #[serde(rename(serialize = "@type", deserialize = "@type"))]
521  td_name: String,
522  #[doc(hidden)]
523  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
524  extra: Option<String>,
525  /// Current hash of the file containing the selfie
526  file_hash: String,
527  
528}
529
530impl RObject for InputPassportElementErrorSourceSelfie {
531  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceSelfie" }
532  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
533  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
534}
535
536
537impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceSelfie {}
538
539
540
541impl InputPassportElementErrorSourceSelfie {
542  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
543  pub fn builder() -> RTDInputPassportElementErrorSourceSelfieBuilder {
544    let mut inner = InputPassportElementErrorSourceSelfie::default();
545    inner.td_name = "inputPassportElementErrorSourceSelfie".to_string();
546    inner.extra = Some(Uuid::new_v4().to_string());
547    RTDInputPassportElementErrorSourceSelfieBuilder { inner }
548  }
549
550  pub fn file_hash(&self) -> &String { &self.file_hash }
551
552}
553
554#[doc(hidden)]
555pub struct RTDInputPassportElementErrorSourceSelfieBuilder {
556  inner: InputPassportElementErrorSourceSelfie
557}
558
559impl RTDInputPassportElementErrorSourceSelfieBuilder {
560  pub fn build(&self) -> InputPassportElementErrorSourceSelfie { self.inner.clone() }
561
562   
563  pub fn file_hash<T: AsRef<str>>(&mut self, file_hash: T) -> &mut Self {
564    self.inner.file_hash = file_hash.as_ref().to_string();
565    self
566  }
567
568}
569
570impl AsRef<InputPassportElementErrorSourceSelfie> for InputPassportElementErrorSourceSelfie {
571  fn as_ref(&self) -> &InputPassportElementErrorSourceSelfie { self }
572}
573
574impl AsRef<InputPassportElementErrorSourceSelfie> for RTDInputPassportElementErrorSourceSelfieBuilder {
575  fn as_ref(&self) -> &InputPassportElementErrorSourceSelfie { &self.inner }
576}
577
578
579
580
581
582
583
584/// One of the files containing the translation of the document contains an error. The error is considered resolved when the file with the translation changes
585#[derive(Debug, Clone, Default, Serialize, Deserialize)]
586pub struct InputPassportElementErrorSourceTranslationFile {
587  #[doc(hidden)]
588  #[serde(rename(serialize = "@type", deserialize = "@type"))]
589  td_name: String,
590  #[doc(hidden)]
591  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
592  extra: Option<String>,
593  /// Current hash of the file containing the translation
594  file_hash: String,
595  
596}
597
598impl RObject for InputPassportElementErrorSourceTranslationFile {
599  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceTranslationFile" }
600  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
601  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
602}
603
604
605impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceTranslationFile {}
606
607
608
609impl InputPassportElementErrorSourceTranslationFile {
610  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
611  pub fn builder() -> RTDInputPassportElementErrorSourceTranslationFileBuilder {
612    let mut inner = InputPassportElementErrorSourceTranslationFile::default();
613    inner.td_name = "inputPassportElementErrorSourceTranslationFile".to_string();
614    inner.extra = Some(Uuid::new_v4().to_string());
615    RTDInputPassportElementErrorSourceTranslationFileBuilder { inner }
616  }
617
618  pub fn file_hash(&self) -> &String { &self.file_hash }
619
620}
621
622#[doc(hidden)]
623pub struct RTDInputPassportElementErrorSourceTranslationFileBuilder {
624  inner: InputPassportElementErrorSourceTranslationFile
625}
626
627impl RTDInputPassportElementErrorSourceTranslationFileBuilder {
628  pub fn build(&self) -> InputPassportElementErrorSourceTranslationFile { self.inner.clone() }
629
630   
631  pub fn file_hash<T: AsRef<str>>(&mut self, file_hash: T) -> &mut Self {
632    self.inner.file_hash = file_hash.as_ref().to_string();
633    self
634  }
635
636}
637
638impl AsRef<InputPassportElementErrorSourceTranslationFile> for InputPassportElementErrorSourceTranslationFile {
639  fn as_ref(&self) -> &InputPassportElementErrorSourceTranslationFile { self }
640}
641
642impl AsRef<InputPassportElementErrorSourceTranslationFile> for RTDInputPassportElementErrorSourceTranslationFileBuilder {
643  fn as_ref(&self) -> &InputPassportElementErrorSourceTranslationFile { &self.inner }
644}
645
646
647
648
649
650
651
652/// The translation of the document contains an error. The error is considered resolved when the list of files changes
653#[derive(Debug, Clone, Default, Serialize, Deserialize)]
654pub struct InputPassportElementErrorSourceTranslationFiles {
655  #[doc(hidden)]
656  #[serde(rename(serialize = "@type", deserialize = "@type"))]
657  td_name: String,
658  #[doc(hidden)]
659  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
660  extra: Option<String>,
661  /// Current hashes of all files with the translation
662  file_hashes: Vec<String>,
663  
664}
665
666impl RObject for InputPassportElementErrorSourceTranslationFiles {
667  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceTranslationFiles" }
668  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
669  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
670}
671
672
673impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceTranslationFiles {}
674
675
676
677impl InputPassportElementErrorSourceTranslationFiles {
678  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
679  pub fn builder() -> RTDInputPassportElementErrorSourceTranslationFilesBuilder {
680    let mut inner = InputPassportElementErrorSourceTranslationFiles::default();
681    inner.td_name = "inputPassportElementErrorSourceTranslationFiles".to_string();
682    inner.extra = Some(Uuid::new_v4().to_string());
683    RTDInputPassportElementErrorSourceTranslationFilesBuilder { inner }
684  }
685
686  pub fn file_hashes(&self) -> &Vec<String> { &self.file_hashes }
687
688}
689
690#[doc(hidden)]
691pub struct RTDInputPassportElementErrorSourceTranslationFilesBuilder {
692  inner: InputPassportElementErrorSourceTranslationFiles
693}
694
695impl RTDInputPassportElementErrorSourceTranslationFilesBuilder {
696  pub fn build(&self) -> InputPassportElementErrorSourceTranslationFiles { self.inner.clone() }
697
698   
699  pub fn file_hashes(&mut self, file_hashes: Vec<String>) -> &mut Self {
700    self.inner.file_hashes = file_hashes;
701    self
702  }
703
704}
705
706impl AsRef<InputPassportElementErrorSourceTranslationFiles> for InputPassportElementErrorSourceTranslationFiles {
707  fn as_ref(&self) -> &InputPassportElementErrorSourceTranslationFiles { self }
708}
709
710impl AsRef<InputPassportElementErrorSourceTranslationFiles> for RTDInputPassportElementErrorSourceTranslationFilesBuilder {
711  fn as_ref(&self) -> &InputPassportElementErrorSourceTranslationFiles { &self.inner }
712}
713
714
715
716
717
718
719
720/// The element contains an error in an unspecified place. The error will be considered resolved when new data is added
721#[derive(Debug, Clone, Default, Serialize, Deserialize)]
722pub struct InputPassportElementErrorSourceUnspecified {
723  #[doc(hidden)]
724  #[serde(rename(serialize = "@type", deserialize = "@type"))]
725  td_name: String,
726  #[doc(hidden)]
727  #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
728  extra: Option<String>,
729  /// Current hash of the entire element
730  element_hash: String,
731  
732}
733
734impl RObject for InputPassportElementErrorSourceUnspecified {
735  #[doc(hidden)] fn td_name(&self) -> &'static str { "inputPassportElementErrorSourceUnspecified" }
736  #[doc(hidden)] fn extra(&self) -> Option<String> { self.extra.clone() }
737  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
738}
739
740
741impl TDInputPassportElementErrorSource for InputPassportElementErrorSourceUnspecified {}
742
743
744
745impl InputPassportElementErrorSourceUnspecified {
746  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
747  pub fn builder() -> RTDInputPassportElementErrorSourceUnspecifiedBuilder {
748    let mut inner = InputPassportElementErrorSourceUnspecified::default();
749    inner.td_name = "inputPassportElementErrorSourceUnspecified".to_string();
750    inner.extra = Some(Uuid::new_v4().to_string());
751    RTDInputPassportElementErrorSourceUnspecifiedBuilder { inner }
752  }
753
754  pub fn element_hash(&self) -> &String { &self.element_hash }
755
756}
757
758#[doc(hidden)]
759pub struct RTDInputPassportElementErrorSourceUnspecifiedBuilder {
760  inner: InputPassportElementErrorSourceUnspecified
761}
762
763impl RTDInputPassportElementErrorSourceUnspecifiedBuilder {
764  pub fn build(&self) -> InputPassportElementErrorSourceUnspecified { self.inner.clone() }
765
766   
767  pub fn element_hash<T: AsRef<str>>(&mut self, element_hash: T) -> &mut Self {
768    self.inner.element_hash = element_hash.as_ref().to_string();
769    self
770  }
771
772}
773
774impl AsRef<InputPassportElementErrorSourceUnspecified> for InputPassportElementErrorSourceUnspecified {
775  fn as_ref(&self) -> &InputPassportElementErrorSourceUnspecified { self }
776}
777
778impl AsRef<InputPassportElementErrorSourceUnspecified> for RTDInputPassportElementErrorSourceUnspecifiedBuilder {
779  fn as_ref(&self) -> &InputPassportElementErrorSourceUnspecified { &self.inner }
780}
781
782
783