1use crate::errors::Result;
2use crate::types::*;
3use uuid::Uuid;
4
5use std::fmt::Debug;
6
7pub trait TDPassportElementErrorSource: Debug + RObject {}
9
10#[derive(Debug, Clone, Deserialize, Serialize, Default)]
12#[serde(tag = "@type")]
13pub enum PassportElementErrorSource {
14 #[doc(hidden)]
15 #[default]
16 _Default,
17 #[serde(rename = "passportElementErrorSourceDataField")]
19 DataField(PassportElementErrorSourceDataField),
20 #[serde(rename = "passportElementErrorSourceFile")]
22 File(PassportElementErrorSourceFile),
23 #[serde(rename = "passportElementErrorSourceFiles")]
25 Files(PassportElementErrorSourceFiles),
26 #[serde(rename = "passportElementErrorSourceFrontSide")]
28 FrontSide(PassportElementErrorSourceFrontSide),
29 #[serde(rename = "passportElementErrorSourceReverseSide")]
31 ReverseSide(PassportElementErrorSourceReverseSide),
32 #[serde(rename = "passportElementErrorSourceSelfie")]
34 Selfie(PassportElementErrorSourceSelfie),
35 #[serde(rename = "passportElementErrorSourceTranslationFile")]
37 TranslationFile(PassportElementErrorSourceTranslationFile),
38 #[serde(rename = "passportElementErrorSourceTranslationFiles")]
40 TranslationFiles(PassportElementErrorSourceTranslationFiles),
41 #[serde(rename = "passportElementErrorSourceUnspecified")]
43 Unspecified(PassportElementErrorSourceUnspecified),
44}
45
46impl RObject for PassportElementErrorSource {
47 #[doc(hidden)]
48 fn extra(&self) -> Option<&str> {
49 match self {
50 PassportElementErrorSource::DataField(t) => t.extra(),
51 PassportElementErrorSource::File(t) => t.extra(),
52 PassportElementErrorSource::Files(t) => t.extra(),
53 PassportElementErrorSource::FrontSide(t) => t.extra(),
54 PassportElementErrorSource::ReverseSide(t) => t.extra(),
55 PassportElementErrorSource::Selfie(t) => t.extra(),
56 PassportElementErrorSource::TranslationFile(t) => t.extra(),
57 PassportElementErrorSource::TranslationFiles(t) => t.extra(),
58 PassportElementErrorSource::Unspecified(t) => t.extra(),
59
60 _ => None,
61 }
62 }
63 #[doc(hidden)]
64 fn client_id(&self) -> Option<i32> {
65 match self {
66 PassportElementErrorSource::DataField(t) => t.client_id(),
67 PassportElementErrorSource::File(t) => t.client_id(),
68 PassportElementErrorSource::Files(t) => t.client_id(),
69 PassportElementErrorSource::FrontSide(t) => t.client_id(),
70 PassportElementErrorSource::ReverseSide(t) => t.client_id(),
71 PassportElementErrorSource::Selfie(t) => t.client_id(),
72 PassportElementErrorSource::TranslationFile(t) => t.client_id(),
73 PassportElementErrorSource::TranslationFiles(t) => t.client_id(),
74 PassportElementErrorSource::Unspecified(t) => t.client_id(),
75
76 _ => None,
77 }
78 }
79}
80
81impl PassportElementErrorSource {
82 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
83 Ok(serde_json::from_str(json.as_ref())?)
84 }
85 #[doc(hidden)]
86 pub fn _is_default(&self) -> bool {
87 matches!(self, PassportElementErrorSource::_Default)
88 }
89}
90
91impl AsRef<PassportElementErrorSource> for PassportElementErrorSource {
92 fn as_ref(&self) -> &PassportElementErrorSource {
93 self
94 }
95}
96
97#[derive(Debug, Clone, Default, Serialize, Deserialize)]
99pub struct PassportElementErrorSourceDataField {
100 #[doc(hidden)]
101 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
102 extra: Option<String>,
103 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
104 client_id: Option<i32>,
105 #[serde(default)]
108 field_name: String,
109}
110
111impl RObject for PassportElementErrorSourceDataField {
112 #[doc(hidden)]
113 fn extra(&self) -> Option<&str> {
114 self.extra.as_deref()
115 }
116 #[doc(hidden)]
117 fn client_id(&self) -> Option<i32> {
118 self.client_id
119 }
120}
121
122impl TDPassportElementErrorSource for PassportElementErrorSourceDataField {}
123
124impl PassportElementErrorSourceDataField {
125 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
126 Ok(serde_json::from_str(json.as_ref())?)
127 }
128 pub fn builder() -> PassportElementErrorSourceDataFieldBuilder {
129 let mut inner = PassportElementErrorSourceDataField::default();
130 inner.extra = Some(Uuid::new_v4().to_string());
131
132 PassportElementErrorSourceDataFieldBuilder { inner }
133 }
134
135 pub fn field_name(&self) -> &String {
136 &self.field_name
137 }
138}
139
140#[doc(hidden)]
141pub struct PassportElementErrorSourceDataFieldBuilder {
142 inner: PassportElementErrorSourceDataField,
143}
144
145#[deprecated]
146pub type RTDPassportElementErrorSourceDataFieldBuilder = PassportElementErrorSourceDataFieldBuilder;
147
148impl PassportElementErrorSourceDataFieldBuilder {
149 pub fn build(&self) -> PassportElementErrorSourceDataField {
150 self.inner.clone()
151 }
152
153 pub fn field_name<T: AsRef<str>>(&mut self, field_name: T) -> &mut Self {
154 self.inner.field_name = field_name.as_ref().to_string();
155 self
156 }
157}
158
159impl AsRef<PassportElementErrorSourceDataField> for PassportElementErrorSourceDataField {
160 fn as_ref(&self) -> &PassportElementErrorSourceDataField {
161 self
162 }
163}
164
165impl AsRef<PassportElementErrorSourceDataField> for PassportElementErrorSourceDataFieldBuilder {
166 fn as_ref(&self) -> &PassportElementErrorSourceDataField {
167 &self.inner
168 }
169}
170
171#[derive(Debug, Clone, Default, Serialize, Deserialize)]
173pub struct PassportElementErrorSourceFile {
174 #[doc(hidden)]
175 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
176 extra: Option<String>,
177 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
178 client_id: Option<i32>,
179 #[serde(default)]
182 file_index: i32,
183}
184
185impl RObject for PassportElementErrorSourceFile {
186 #[doc(hidden)]
187 fn extra(&self) -> Option<&str> {
188 self.extra.as_deref()
189 }
190 #[doc(hidden)]
191 fn client_id(&self) -> Option<i32> {
192 self.client_id
193 }
194}
195
196impl TDPassportElementErrorSource for PassportElementErrorSourceFile {}
197
198impl PassportElementErrorSourceFile {
199 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
200 Ok(serde_json::from_str(json.as_ref())?)
201 }
202 pub fn builder() -> PassportElementErrorSourceFileBuilder {
203 let mut inner = PassportElementErrorSourceFile::default();
204 inner.extra = Some(Uuid::new_v4().to_string());
205
206 PassportElementErrorSourceFileBuilder { inner }
207 }
208
209 pub fn file_index(&self) -> i32 {
210 self.file_index
211 }
212}
213
214#[doc(hidden)]
215pub struct PassportElementErrorSourceFileBuilder {
216 inner: PassportElementErrorSourceFile,
217}
218
219#[deprecated]
220pub type RTDPassportElementErrorSourceFileBuilder = PassportElementErrorSourceFileBuilder;
221
222impl PassportElementErrorSourceFileBuilder {
223 pub fn build(&self) -> PassportElementErrorSourceFile {
224 self.inner.clone()
225 }
226
227 pub fn file_index(&mut self, file_index: i32) -> &mut Self {
228 self.inner.file_index = file_index;
229 self
230 }
231}
232
233impl AsRef<PassportElementErrorSourceFile> for PassportElementErrorSourceFile {
234 fn as_ref(&self) -> &PassportElementErrorSourceFile {
235 self
236 }
237}
238
239impl AsRef<PassportElementErrorSourceFile> for PassportElementErrorSourceFileBuilder {
240 fn as_ref(&self) -> &PassportElementErrorSourceFile {
241 &self.inner
242 }
243}
244
245#[derive(Debug, Clone, Default, Serialize, Deserialize)]
247pub struct PassportElementErrorSourceFiles {
248 #[doc(hidden)]
249 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
250 extra: Option<String>,
251 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
252 client_id: Option<i32>,
253}
254
255impl RObject for PassportElementErrorSourceFiles {
256 #[doc(hidden)]
257 fn extra(&self) -> Option<&str> {
258 self.extra.as_deref()
259 }
260 #[doc(hidden)]
261 fn client_id(&self) -> Option<i32> {
262 self.client_id
263 }
264}
265
266impl TDPassportElementErrorSource for PassportElementErrorSourceFiles {}
267
268impl PassportElementErrorSourceFiles {
269 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
270 Ok(serde_json::from_str(json.as_ref())?)
271 }
272 pub fn builder() -> PassportElementErrorSourceFilesBuilder {
273 let mut inner = PassportElementErrorSourceFiles::default();
274 inner.extra = Some(Uuid::new_v4().to_string());
275
276 PassportElementErrorSourceFilesBuilder { inner }
277 }
278}
279
280#[doc(hidden)]
281pub struct PassportElementErrorSourceFilesBuilder {
282 inner: PassportElementErrorSourceFiles,
283}
284
285#[deprecated]
286pub type RTDPassportElementErrorSourceFilesBuilder = PassportElementErrorSourceFilesBuilder;
287
288impl PassportElementErrorSourceFilesBuilder {
289 pub fn build(&self) -> PassportElementErrorSourceFiles {
290 self.inner.clone()
291 }
292}
293
294impl AsRef<PassportElementErrorSourceFiles> for PassportElementErrorSourceFiles {
295 fn as_ref(&self) -> &PassportElementErrorSourceFiles {
296 self
297 }
298}
299
300impl AsRef<PassportElementErrorSourceFiles> for PassportElementErrorSourceFilesBuilder {
301 fn as_ref(&self) -> &PassportElementErrorSourceFiles {
302 &self.inner
303 }
304}
305
306#[derive(Debug, Clone, Default, Serialize, Deserialize)]
308pub struct PassportElementErrorSourceFrontSide {
309 #[doc(hidden)]
310 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
311 extra: Option<String>,
312 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
313 client_id: Option<i32>,
314}
315
316impl RObject for PassportElementErrorSourceFrontSide {
317 #[doc(hidden)]
318 fn extra(&self) -> Option<&str> {
319 self.extra.as_deref()
320 }
321 #[doc(hidden)]
322 fn client_id(&self) -> Option<i32> {
323 self.client_id
324 }
325}
326
327impl TDPassportElementErrorSource for PassportElementErrorSourceFrontSide {}
328
329impl PassportElementErrorSourceFrontSide {
330 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
331 Ok(serde_json::from_str(json.as_ref())?)
332 }
333 pub fn builder() -> PassportElementErrorSourceFrontSideBuilder {
334 let mut inner = PassportElementErrorSourceFrontSide::default();
335 inner.extra = Some(Uuid::new_v4().to_string());
336
337 PassportElementErrorSourceFrontSideBuilder { inner }
338 }
339}
340
341#[doc(hidden)]
342pub struct PassportElementErrorSourceFrontSideBuilder {
343 inner: PassportElementErrorSourceFrontSide,
344}
345
346#[deprecated]
347pub type RTDPassportElementErrorSourceFrontSideBuilder = PassportElementErrorSourceFrontSideBuilder;
348
349impl PassportElementErrorSourceFrontSideBuilder {
350 pub fn build(&self) -> PassportElementErrorSourceFrontSide {
351 self.inner.clone()
352 }
353}
354
355impl AsRef<PassportElementErrorSourceFrontSide> for PassportElementErrorSourceFrontSide {
356 fn as_ref(&self) -> &PassportElementErrorSourceFrontSide {
357 self
358 }
359}
360
361impl AsRef<PassportElementErrorSourceFrontSide> for PassportElementErrorSourceFrontSideBuilder {
362 fn as_ref(&self) -> &PassportElementErrorSourceFrontSide {
363 &self.inner
364 }
365}
366
367#[derive(Debug, Clone, Default, Serialize, Deserialize)]
369pub struct PassportElementErrorSourceReverseSide {
370 #[doc(hidden)]
371 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
372 extra: Option<String>,
373 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
374 client_id: Option<i32>,
375}
376
377impl RObject for PassportElementErrorSourceReverseSide {
378 #[doc(hidden)]
379 fn extra(&self) -> Option<&str> {
380 self.extra.as_deref()
381 }
382 #[doc(hidden)]
383 fn client_id(&self) -> Option<i32> {
384 self.client_id
385 }
386}
387
388impl TDPassportElementErrorSource for PassportElementErrorSourceReverseSide {}
389
390impl PassportElementErrorSourceReverseSide {
391 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
392 Ok(serde_json::from_str(json.as_ref())?)
393 }
394 pub fn builder() -> PassportElementErrorSourceReverseSideBuilder {
395 let mut inner = PassportElementErrorSourceReverseSide::default();
396 inner.extra = Some(Uuid::new_v4().to_string());
397
398 PassportElementErrorSourceReverseSideBuilder { inner }
399 }
400}
401
402#[doc(hidden)]
403pub struct PassportElementErrorSourceReverseSideBuilder {
404 inner: PassportElementErrorSourceReverseSide,
405}
406
407#[deprecated]
408pub type RTDPassportElementErrorSourceReverseSideBuilder =
409 PassportElementErrorSourceReverseSideBuilder;
410
411impl PassportElementErrorSourceReverseSideBuilder {
412 pub fn build(&self) -> PassportElementErrorSourceReverseSide {
413 self.inner.clone()
414 }
415}
416
417impl AsRef<PassportElementErrorSourceReverseSide> for PassportElementErrorSourceReverseSide {
418 fn as_ref(&self) -> &PassportElementErrorSourceReverseSide {
419 self
420 }
421}
422
423impl AsRef<PassportElementErrorSourceReverseSide> for PassportElementErrorSourceReverseSideBuilder {
424 fn as_ref(&self) -> &PassportElementErrorSourceReverseSide {
425 &self.inner
426 }
427}
428
429#[derive(Debug, Clone, Default, Serialize, Deserialize)]
431pub struct PassportElementErrorSourceSelfie {
432 #[doc(hidden)]
433 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
434 extra: Option<String>,
435 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
436 client_id: Option<i32>,
437}
438
439impl RObject for PassportElementErrorSourceSelfie {
440 #[doc(hidden)]
441 fn extra(&self) -> Option<&str> {
442 self.extra.as_deref()
443 }
444 #[doc(hidden)]
445 fn client_id(&self) -> Option<i32> {
446 self.client_id
447 }
448}
449
450impl TDPassportElementErrorSource for PassportElementErrorSourceSelfie {}
451
452impl PassportElementErrorSourceSelfie {
453 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
454 Ok(serde_json::from_str(json.as_ref())?)
455 }
456 pub fn builder() -> PassportElementErrorSourceSelfieBuilder {
457 let mut inner = PassportElementErrorSourceSelfie::default();
458 inner.extra = Some(Uuid::new_v4().to_string());
459
460 PassportElementErrorSourceSelfieBuilder { inner }
461 }
462}
463
464#[doc(hidden)]
465pub struct PassportElementErrorSourceSelfieBuilder {
466 inner: PassportElementErrorSourceSelfie,
467}
468
469#[deprecated]
470pub type RTDPassportElementErrorSourceSelfieBuilder = PassportElementErrorSourceSelfieBuilder;
471
472impl PassportElementErrorSourceSelfieBuilder {
473 pub fn build(&self) -> PassportElementErrorSourceSelfie {
474 self.inner.clone()
475 }
476}
477
478impl AsRef<PassportElementErrorSourceSelfie> for PassportElementErrorSourceSelfie {
479 fn as_ref(&self) -> &PassportElementErrorSourceSelfie {
480 self
481 }
482}
483
484impl AsRef<PassportElementErrorSourceSelfie> for PassportElementErrorSourceSelfieBuilder {
485 fn as_ref(&self) -> &PassportElementErrorSourceSelfie {
486 &self.inner
487 }
488}
489
490#[derive(Debug, Clone, Default, Serialize, Deserialize)]
492pub struct PassportElementErrorSourceTranslationFile {
493 #[doc(hidden)]
494 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
495 extra: Option<String>,
496 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
497 client_id: Option<i32>,
498 #[serde(default)]
501 file_index: i32,
502}
503
504impl RObject for PassportElementErrorSourceTranslationFile {
505 #[doc(hidden)]
506 fn extra(&self) -> Option<&str> {
507 self.extra.as_deref()
508 }
509 #[doc(hidden)]
510 fn client_id(&self) -> Option<i32> {
511 self.client_id
512 }
513}
514
515impl TDPassportElementErrorSource for PassportElementErrorSourceTranslationFile {}
516
517impl PassportElementErrorSourceTranslationFile {
518 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
519 Ok(serde_json::from_str(json.as_ref())?)
520 }
521 pub fn builder() -> PassportElementErrorSourceTranslationFileBuilder {
522 let mut inner = PassportElementErrorSourceTranslationFile::default();
523 inner.extra = Some(Uuid::new_v4().to_string());
524
525 PassportElementErrorSourceTranslationFileBuilder { inner }
526 }
527
528 pub fn file_index(&self) -> i32 {
529 self.file_index
530 }
531}
532
533#[doc(hidden)]
534pub struct PassportElementErrorSourceTranslationFileBuilder {
535 inner: PassportElementErrorSourceTranslationFile,
536}
537
538#[deprecated]
539pub type RTDPassportElementErrorSourceTranslationFileBuilder =
540 PassportElementErrorSourceTranslationFileBuilder;
541
542impl PassportElementErrorSourceTranslationFileBuilder {
543 pub fn build(&self) -> PassportElementErrorSourceTranslationFile {
544 self.inner.clone()
545 }
546
547 pub fn file_index(&mut self, file_index: i32) -> &mut Self {
548 self.inner.file_index = file_index;
549 self
550 }
551}
552
553impl AsRef<PassportElementErrorSourceTranslationFile>
554 for PassportElementErrorSourceTranslationFile
555{
556 fn as_ref(&self) -> &PassportElementErrorSourceTranslationFile {
557 self
558 }
559}
560
561impl AsRef<PassportElementErrorSourceTranslationFile>
562 for PassportElementErrorSourceTranslationFileBuilder
563{
564 fn as_ref(&self) -> &PassportElementErrorSourceTranslationFile {
565 &self.inner
566 }
567}
568
569#[derive(Debug, Clone, Default, Serialize, Deserialize)]
571pub struct PassportElementErrorSourceTranslationFiles {
572 #[doc(hidden)]
573 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
574 extra: Option<String>,
575 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
576 client_id: Option<i32>,
577}
578
579impl RObject for PassportElementErrorSourceTranslationFiles {
580 #[doc(hidden)]
581 fn extra(&self) -> Option<&str> {
582 self.extra.as_deref()
583 }
584 #[doc(hidden)]
585 fn client_id(&self) -> Option<i32> {
586 self.client_id
587 }
588}
589
590impl TDPassportElementErrorSource for PassportElementErrorSourceTranslationFiles {}
591
592impl PassportElementErrorSourceTranslationFiles {
593 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
594 Ok(serde_json::from_str(json.as_ref())?)
595 }
596 pub fn builder() -> PassportElementErrorSourceTranslationFilesBuilder {
597 let mut inner = PassportElementErrorSourceTranslationFiles::default();
598 inner.extra = Some(Uuid::new_v4().to_string());
599
600 PassportElementErrorSourceTranslationFilesBuilder { inner }
601 }
602}
603
604#[doc(hidden)]
605pub struct PassportElementErrorSourceTranslationFilesBuilder {
606 inner: PassportElementErrorSourceTranslationFiles,
607}
608
609#[deprecated]
610pub type RTDPassportElementErrorSourceTranslationFilesBuilder =
611 PassportElementErrorSourceTranslationFilesBuilder;
612
613impl PassportElementErrorSourceTranslationFilesBuilder {
614 pub fn build(&self) -> PassportElementErrorSourceTranslationFiles {
615 self.inner.clone()
616 }
617}
618
619impl AsRef<PassportElementErrorSourceTranslationFiles>
620 for PassportElementErrorSourceTranslationFiles
621{
622 fn as_ref(&self) -> &PassportElementErrorSourceTranslationFiles {
623 self
624 }
625}
626
627impl AsRef<PassportElementErrorSourceTranslationFiles>
628 for PassportElementErrorSourceTranslationFilesBuilder
629{
630 fn as_ref(&self) -> &PassportElementErrorSourceTranslationFiles {
631 &self.inner
632 }
633}
634
635#[derive(Debug, Clone, Default, Serialize, Deserialize)]
637pub struct PassportElementErrorSourceUnspecified {
638 #[doc(hidden)]
639 #[serde(rename(serialize = "@extra", deserialize = "@extra"))]
640 extra: Option<String>,
641 #[serde(rename(serialize = "@client_id", deserialize = "@client_id"))]
642 client_id: Option<i32>,
643}
644
645impl RObject for PassportElementErrorSourceUnspecified {
646 #[doc(hidden)]
647 fn extra(&self) -> Option<&str> {
648 self.extra.as_deref()
649 }
650 #[doc(hidden)]
651 fn client_id(&self) -> Option<i32> {
652 self.client_id
653 }
654}
655
656impl TDPassportElementErrorSource for PassportElementErrorSourceUnspecified {}
657
658impl PassportElementErrorSourceUnspecified {
659 pub fn from_json<S: AsRef<str>>(json: S) -> Result<Self> {
660 Ok(serde_json::from_str(json.as_ref())?)
661 }
662 pub fn builder() -> PassportElementErrorSourceUnspecifiedBuilder {
663 let mut inner = PassportElementErrorSourceUnspecified::default();
664 inner.extra = Some(Uuid::new_v4().to_string());
665
666 PassportElementErrorSourceUnspecifiedBuilder { inner }
667 }
668}
669
670#[doc(hidden)]
671pub struct PassportElementErrorSourceUnspecifiedBuilder {
672 inner: PassportElementErrorSourceUnspecified,
673}
674
675#[deprecated]
676pub type RTDPassportElementErrorSourceUnspecifiedBuilder =
677 PassportElementErrorSourceUnspecifiedBuilder;
678
679impl PassportElementErrorSourceUnspecifiedBuilder {
680 pub fn build(&self) -> PassportElementErrorSourceUnspecified {
681 self.inner.clone()
682 }
683}
684
685impl AsRef<PassportElementErrorSourceUnspecified> for PassportElementErrorSourceUnspecified {
686 fn as_ref(&self) -> &PassportElementErrorSourceUnspecified {
687 self
688 }
689}
690
691impl AsRef<PassportElementErrorSourceUnspecified> for PassportElementErrorSourceUnspecifiedBuilder {
692 fn as_ref(&self) -> &PassportElementErrorSourceUnspecified {
693 &self.inner
694 }
695}