dropbox_sdk/generated/types/
contacts.rs1#![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] pub struct DeleteManualContactsArg {
15 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 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 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 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] pub enum DeleteManualContactsError {
106 ContactsNotFound(Vec<crate::types::common::EmailAddress>),
109 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 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 use serde::ser::SerializeStruct;
153 match self {
154 DeleteManualContactsError::ContactsNotFound(x) => {
155 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