Skip to main content

dropbox_sdk/generated/types/
contacts.rs

1// DO NOT EDIT
2// This file was @generated by Stone
3
4#![allow(
5    clippy::too_many_arguments,
6    clippy::large_enum_variant,
7    clippy::result_large_err,
8    clippy::doc_markdown,
9    clippy::doc_lazy_continuation,
10)]
11
12#[derive(Debug, Clone, PartialEq, Eq)]
13#[non_exhaustive] // structs may have more fields added in the future.
14pub struct DeleteManualContactsArg {
15    /// List of manually added contacts to be deleted.
16    pub email_addresses: Vec<crate::types::common::EmailAddress>,
17}
18
19impl DeleteManualContactsArg {
20    pub fn new(email_addresses: Vec<crate::types::common::EmailAddress>) -> Self {
21        DeleteManualContactsArg {
22            email_addresses,
23        }
24    }
25}
26
27const DELETE_MANUAL_CONTACTS_ARG_FIELDS: &[&str] = &["email_addresses"];
28impl DeleteManualContactsArg {
29    pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
30        map: V,
31    ) -> Result<DeleteManualContactsArg, V::Error> {
32        Self::internal_deserialize_opt(map, false).map(Option::unwrap)
33    }
34
35    pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
36        mut map: V,
37        optional: bool,
38    ) -> Result<Option<DeleteManualContactsArg>, V::Error> {
39        let mut field_email_addresses = None;
40        let mut nothing = true;
41        while let Some(key) = map.next_key::<&str>()? {
42            nothing = false;
43            match key {
44                "email_addresses" => {
45                    if field_email_addresses.is_some() {
46                        return Err(::serde::de::Error::duplicate_field("email_addresses"));
47                    }
48                    field_email_addresses = Some(map.next_value()?);
49                }
50                _ => {
51                    // unknown field allowed and ignored
52                    map.next_value::<::serde_json::Value>()?;
53                }
54            }
55        }
56        if optional && nothing {
57            return Ok(None);
58        }
59        let result = DeleteManualContactsArg {
60            email_addresses: field_email_addresses.ok_or_else(|| ::serde::de::Error::missing_field("email_addresses"))?,
61        };
62        Ok(Some(result))
63    }
64
65    pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
66        &self,
67        s: &mut S::SerializeStruct,
68    ) -> Result<(), S::Error> {
69        use serde::ser::SerializeStruct;
70        s.serialize_field("email_addresses", &self.email_addresses)?;
71        Ok(())
72    }
73}
74
75impl<'de> ::serde::de::Deserialize<'de> for DeleteManualContactsArg {
76    fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
77        // struct deserializer
78        use serde::de::{MapAccess, Visitor};
79        struct StructVisitor;
80        impl<'de> Visitor<'de> for StructVisitor {
81            type Value = DeleteManualContactsArg;
82            fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
83                f.write_str("a DeleteManualContactsArg struct")
84            }
85            fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
86                DeleteManualContactsArg::internal_deserialize(map)
87            }
88        }
89        deserializer.deserialize_struct("DeleteManualContactsArg", DELETE_MANUAL_CONTACTS_ARG_FIELDS, StructVisitor)
90    }
91}
92
93impl ::serde::ser::Serialize for DeleteManualContactsArg {
94    fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
95        // struct serializer
96        use serde::ser::SerializeStruct;
97        let mut s = serializer.serialize_struct("DeleteManualContactsArg", 1)?;
98        self.internal_serialize::<S>(&mut s)?;
99        s.end()
100    }
101}
102
103#[derive(Debug, Clone, PartialEq, Eq)]
104#[non_exhaustive] // variants may be added in the future
105pub enum DeleteManualContactsError {
106    /// Can't delete contacts from this list. Make sure the list only has manually added contacts.
107    /// The deletion was cancelled.
108    ContactsNotFound(Vec<crate::types::common::EmailAddress>),
109    /// Catch-all used for unrecognized values returned from the server. Encountering this value
110    /// typically indicates that this SDK version is out of date.
111    Other,
112}
113
114impl<'de> ::serde::de::Deserialize<'de> for DeleteManualContactsError {
115    fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
116        // union deserializer
117        use serde::de::{self, MapAccess, Visitor};
118        struct EnumVisitor;
119        impl<'de> Visitor<'de> for EnumVisitor {
120            type Value = DeleteManualContactsError;
121            fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
122                f.write_str("a DeleteManualContactsError structure")
123            }
124            fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
125                let tag: &str = match map.next_key()? {
126                    Some(".tag") => map.next_value()?,
127                    _ => return Err(de::Error::missing_field(".tag"))
128                };
129                let value = match tag {
130                    "contacts_not_found" => {
131                        match map.next_key()? {
132                            Some("contacts_not_found") => DeleteManualContactsError::ContactsNotFound(map.next_value()?),
133                            None => return Err(de::Error::missing_field("contacts_not_found")),
134                            _ => return Err(de::Error::unknown_field(tag, VARIANTS))
135                        }
136                    }
137                    _ => DeleteManualContactsError::Other,
138                };
139                crate::eat_json_fields(&mut map)?;
140                Ok(value)
141            }
142        }
143        const VARIANTS: &[&str] = &["contacts_not_found",
144                                    "other"];
145        deserializer.deserialize_struct("DeleteManualContactsError", VARIANTS, EnumVisitor)
146    }
147}
148
149impl ::serde::ser::Serialize for DeleteManualContactsError {
150    fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
151        // union serializer
152        use serde::ser::SerializeStruct;
153        match self {
154            DeleteManualContactsError::ContactsNotFound(x) => {
155                // primitive
156                let mut s = serializer.serialize_struct("DeleteManualContactsError", 2)?;
157                s.serialize_field(".tag", "contacts_not_found")?;
158                s.serialize_field("contacts_not_found", x)?;
159                s.end()
160            }
161            DeleteManualContactsError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
162        }
163    }
164}
165
166impl ::std::error::Error for DeleteManualContactsError {
167}
168
169impl ::std::fmt::Display for DeleteManualContactsError {
170    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
171        match self {
172            DeleteManualContactsError::ContactsNotFound(inner) => write!(f, "Can't delete contacts from this list. Make sure the list only has manually added contacts. The deletion was cancelled: {:?}", inner),
173            _ => write!(f, "{:?}", *self),
174        }
175    }
176}
177