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