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)]
10
11#[derive(Debug, Clone, PartialEq, Eq)]
12#[non_exhaustive] pub struct DeleteManualContactsArg {
14 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 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 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 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] pub enum DeleteManualContactsError {
105 ContactsNotFound(Vec<crate::types::common::EmailAddress>),
108 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 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 use serde::ser::SerializeStruct;
152 match self {
153 DeleteManualContactsError::ContactsNotFound(x) => {
154 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