1#![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
12pub type PaperDocId = String;
19
20#[derive(Debug, Clone, PartialEq, Eq)]
21#[non_exhaustive] pub struct AddMember {
23 pub member: crate::types::sharing::MemberSelector,
26 pub permission_level: PaperDocPermissionLevel,
28}
29
30impl AddMember {
31 pub fn new(member: crate::types::sharing::MemberSelector) -> Self {
32 AddMember {
33 member,
34 permission_level: PaperDocPermissionLevel::Edit,
35 }
36 }
37
38 pub fn with_permission_level(mut self, value: PaperDocPermissionLevel) -> Self {
39 self.permission_level = value;
40 self
41 }
42}
43
44const ADD_MEMBER_FIELDS: &[&str] = &["member",
45 "permission_level"];
46impl AddMember {
47 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
48 map: V,
49 ) -> Result<AddMember, V::Error> {
50 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
51 }
52
53 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
54 mut map: V,
55 optional: bool,
56 ) -> Result<Option<AddMember>, V::Error> {
57 let mut field_member = None;
58 let mut field_permission_level = None;
59 let mut nothing = true;
60 while let Some(key) = map.next_key::<&str>()? {
61 nothing = false;
62 match key {
63 "member" => {
64 if field_member.is_some() {
65 return Err(::serde::de::Error::duplicate_field("member"));
66 }
67 field_member = Some(map.next_value()?);
68 }
69 "permission_level" => {
70 if field_permission_level.is_some() {
71 return Err(::serde::de::Error::duplicate_field("permission_level"));
72 }
73 field_permission_level = Some(map.next_value()?);
74 }
75 _ => {
76 map.next_value::<::serde_json::Value>()?;
78 }
79 }
80 }
81 if optional && nothing {
82 return Ok(None);
83 }
84 let result = AddMember {
85 member: field_member.ok_or_else(|| ::serde::de::Error::missing_field("member"))?,
86 permission_level: field_permission_level.unwrap_or(PaperDocPermissionLevel::Edit),
87 };
88 Ok(Some(result))
89 }
90
91 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
92 &self,
93 s: &mut S::SerializeStruct,
94 ) -> Result<(), S::Error> {
95 use serde::ser::SerializeStruct;
96 s.serialize_field("member", &self.member)?;
97 if self.permission_level != PaperDocPermissionLevel::Edit {
98 s.serialize_field("permission_level", &self.permission_level)?;
99 }
100 Ok(())
101 }
102}
103
104impl<'de> ::serde::de::Deserialize<'de> for AddMember {
105 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
106 use serde::de::{MapAccess, Visitor};
108 struct StructVisitor;
109 impl<'de> Visitor<'de> for StructVisitor {
110 type Value = AddMember;
111 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
112 f.write_str("a AddMember struct")
113 }
114 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
115 AddMember::internal_deserialize(map)
116 }
117 }
118 deserializer.deserialize_struct("AddMember", ADD_MEMBER_FIELDS, StructVisitor)
119 }
120}
121
122impl ::serde::ser::Serialize for AddMember {
123 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
124 use serde::ser::SerializeStruct;
126 let mut s = serializer.serialize_struct("AddMember", 2)?;
127 self.internal_serialize::<S>(&mut s)?;
128 s.end()
129 }
130}
131
132#[derive(Debug, Clone, PartialEq, Eq)]
133#[non_exhaustive] pub struct AddPaperDocUser {
135 pub doc_id: PaperDocId,
137 pub members: Vec<AddMember>,
140 pub custom_message: Option<String>,
142 pub quiet: bool,
144}
145
146impl AddPaperDocUser {
147 pub fn new(doc_id: PaperDocId, members: Vec<AddMember>) -> Self {
148 AddPaperDocUser {
149 doc_id,
150 members,
151 custom_message: None,
152 quiet: false,
153 }
154 }
155
156 pub fn with_custom_message(mut self, value: String) -> Self {
157 self.custom_message = Some(value);
158 self
159 }
160
161 pub fn with_quiet(mut self, value: bool) -> Self {
162 self.quiet = value;
163 self
164 }
165}
166
167const ADD_PAPER_DOC_USER_FIELDS: &[&str] = &["doc_id",
168 "members",
169 "custom_message",
170 "quiet"];
171impl AddPaperDocUser {
172 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
173 map: V,
174 ) -> Result<AddPaperDocUser, V::Error> {
175 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
176 }
177
178 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
179 mut map: V,
180 optional: bool,
181 ) -> Result<Option<AddPaperDocUser>, V::Error> {
182 let mut field_doc_id = None;
183 let mut field_members = None;
184 let mut field_custom_message = None;
185 let mut field_quiet = None;
186 let mut nothing = true;
187 while let Some(key) = map.next_key::<&str>()? {
188 nothing = false;
189 match key {
190 "doc_id" => {
191 if field_doc_id.is_some() {
192 return Err(::serde::de::Error::duplicate_field("doc_id"));
193 }
194 field_doc_id = Some(map.next_value()?);
195 }
196 "members" => {
197 if field_members.is_some() {
198 return Err(::serde::de::Error::duplicate_field("members"));
199 }
200 field_members = Some(map.next_value()?);
201 }
202 "custom_message" => {
203 if field_custom_message.is_some() {
204 return Err(::serde::de::Error::duplicate_field("custom_message"));
205 }
206 field_custom_message = Some(map.next_value()?);
207 }
208 "quiet" => {
209 if field_quiet.is_some() {
210 return Err(::serde::de::Error::duplicate_field("quiet"));
211 }
212 field_quiet = Some(map.next_value()?);
213 }
214 _ => {
215 map.next_value::<::serde_json::Value>()?;
217 }
218 }
219 }
220 if optional && nothing {
221 return Ok(None);
222 }
223 let result = AddPaperDocUser {
224 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
225 members: field_members.ok_or_else(|| ::serde::de::Error::missing_field("members"))?,
226 custom_message: field_custom_message.and_then(Option::flatten),
227 quiet: field_quiet.unwrap_or(false),
228 };
229 Ok(Some(result))
230 }
231
232 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
233 &self,
234 s: &mut S::SerializeStruct,
235 ) -> Result<(), S::Error> {
236 use serde::ser::SerializeStruct;
237 s.serialize_field("doc_id", &self.doc_id)?;
238 s.serialize_field("members", &self.members)?;
239 if let Some(val) = &self.custom_message {
240 s.serialize_field("custom_message", val)?;
241 }
242 if self.quiet {
243 s.serialize_field("quiet", &self.quiet)?;
244 }
245 Ok(())
246 }
247}
248
249impl<'de> ::serde::de::Deserialize<'de> for AddPaperDocUser {
250 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
251 use serde::de::{MapAccess, Visitor};
253 struct StructVisitor;
254 impl<'de> Visitor<'de> for StructVisitor {
255 type Value = AddPaperDocUser;
256 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
257 f.write_str("a AddPaperDocUser struct")
258 }
259 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
260 AddPaperDocUser::internal_deserialize(map)
261 }
262 }
263 deserializer.deserialize_struct("AddPaperDocUser", ADD_PAPER_DOC_USER_FIELDS, StructVisitor)
264 }
265}
266
267impl ::serde::ser::Serialize for AddPaperDocUser {
268 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
269 use serde::ser::SerializeStruct;
271 let mut s = serializer.serialize_struct("AddPaperDocUser", 4)?;
272 self.internal_serialize::<S>(&mut s)?;
273 s.end()
274 }
275}
276
277impl From<AddPaperDocUser> for RefPaperDoc {
279 fn from(subtype: AddPaperDocUser) -> Self {
280 Self {
281 doc_id: subtype.doc_id,
282 }
283 }
284}
285#[derive(Debug, Clone, PartialEq, Eq)]
287#[non_exhaustive] pub struct AddPaperDocUserMemberResult {
289 pub member: crate::types::sharing::MemberSelector,
291 pub result: AddPaperDocUserResult,
293}
294
295impl AddPaperDocUserMemberResult {
296 pub fn new(
297 member: crate::types::sharing::MemberSelector,
298 result: AddPaperDocUserResult,
299 ) -> Self {
300 AddPaperDocUserMemberResult {
301 member,
302 result,
303 }
304 }
305}
306
307const ADD_PAPER_DOC_USER_MEMBER_RESULT_FIELDS: &[&str] = &["member",
308 "result"];
309impl AddPaperDocUserMemberResult {
310 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
311 map: V,
312 ) -> Result<AddPaperDocUserMemberResult, V::Error> {
313 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
314 }
315
316 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
317 mut map: V,
318 optional: bool,
319 ) -> Result<Option<AddPaperDocUserMemberResult>, V::Error> {
320 let mut field_member = None;
321 let mut field_result = None;
322 let mut nothing = true;
323 while let Some(key) = map.next_key::<&str>()? {
324 nothing = false;
325 match key {
326 "member" => {
327 if field_member.is_some() {
328 return Err(::serde::de::Error::duplicate_field("member"));
329 }
330 field_member = Some(map.next_value()?);
331 }
332 "result" => {
333 if field_result.is_some() {
334 return Err(::serde::de::Error::duplicate_field("result"));
335 }
336 field_result = Some(map.next_value()?);
337 }
338 _ => {
339 map.next_value::<::serde_json::Value>()?;
341 }
342 }
343 }
344 if optional && nothing {
345 return Ok(None);
346 }
347 let result = AddPaperDocUserMemberResult {
348 member: field_member.ok_or_else(|| ::serde::de::Error::missing_field("member"))?,
349 result: field_result.ok_or_else(|| ::serde::de::Error::missing_field("result"))?,
350 };
351 Ok(Some(result))
352 }
353
354 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
355 &self,
356 s: &mut S::SerializeStruct,
357 ) -> Result<(), S::Error> {
358 use serde::ser::SerializeStruct;
359 s.serialize_field("member", &self.member)?;
360 s.serialize_field("result", &self.result)?;
361 Ok(())
362 }
363}
364
365impl<'de> ::serde::de::Deserialize<'de> for AddPaperDocUserMemberResult {
366 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
367 use serde::de::{MapAccess, Visitor};
369 struct StructVisitor;
370 impl<'de> Visitor<'de> for StructVisitor {
371 type Value = AddPaperDocUserMemberResult;
372 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
373 f.write_str("a AddPaperDocUserMemberResult struct")
374 }
375 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
376 AddPaperDocUserMemberResult::internal_deserialize(map)
377 }
378 }
379 deserializer.deserialize_struct("AddPaperDocUserMemberResult", ADD_PAPER_DOC_USER_MEMBER_RESULT_FIELDS, StructVisitor)
380 }
381}
382
383impl ::serde::ser::Serialize for AddPaperDocUserMemberResult {
384 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
385 use serde::ser::SerializeStruct;
387 let mut s = serializer.serialize_struct("AddPaperDocUserMemberResult", 2)?;
388 self.internal_serialize::<S>(&mut s)?;
389 s.end()
390 }
391}
392
393#[derive(Debug, Clone, PartialEq, Eq)]
394#[non_exhaustive] pub enum AddPaperDocUserResult {
396 Success,
398 UnknownError,
400 SharingOutsideTeamDisabled,
402 DailyLimitReached,
404 UserIsOwner,
406 FailedUserDataRetrieval,
408 PermissionAlreadyGranted,
410 Other,
413}
414
415impl<'de> ::serde::de::Deserialize<'de> for AddPaperDocUserResult {
416 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
417 use serde::de::{self, MapAccess, Visitor};
419 struct EnumVisitor;
420 impl<'de> Visitor<'de> for EnumVisitor {
421 type Value = AddPaperDocUserResult;
422 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
423 f.write_str("a AddPaperDocUserResult structure")
424 }
425 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
426 let tag: &str = match map.next_key()? {
427 Some(".tag") => map.next_value()?,
428 _ => return Err(de::Error::missing_field(".tag"))
429 };
430 let value = match tag {
431 "success" => AddPaperDocUserResult::Success,
432 "unknown_error" => AddPaperDocUserResult::UnknownError,
433 "sharing_outside_team_disabled" => AddPaperDocUserResult::SharingOutsideTeamDisabled,
434 "daily_limit_reached" => AddPaperDocUserResult::DailyLimitReached,
435 "user_is_owner" => AddPaperDocUserResult::UserIsOwner,
436 "failed_user_data_retrieval" => AddPaperDocUserResult::FailedUserDataRetrieval,
437 "permission_already_granted" => AddPaperDocUserResult::PermissionAlreadyGranted,
438 _ => AddPaperDocUserResult::Other,
439 };
440 crate::eat_json_fields(&mut map)?;
441 Ok(value)
442 }
443 }
444 const VARIANTS: &[&str] = &["success",
445 "unknown_error",
446 "sharing_outside_team_disabled",
447 "daily_limit_reached",
448 "user_is_owner",
449 "failed_user_data_retrieval",
450 "permission_already_granted",
451 "other"];
452 deserializer.deserialize_struct("AddPaperDocUserResult", VARIANTS, EnumVisitor)
453 }
454}
455
456impl ::serde::ser::Serialize for AddPaperDocUserResult {
457 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
458 use serde::ser::SerializeStruct;
460 match self {
461 AddPaperDocUserResult::Success => {
462 let mut s = serializer.serialize_struct("AddPaperDocUserResult", 1)?;
464 s.serialize_field(".tag", "success")?;
465 s.end()
466 }
467 AddPaperDocUserResult::UnknownError => {
468 let mut s = serializer.serialize_struct("AddPaperDocUserResult", 1)?;
470 s.serialize_field(".tag", "unknown_error")?;
471 s.end()
472 }
473 AddPaperDocUserResult::SharingOutsideTeamDisabled => {
474 let mut s = serializer.serialize_struct("AddPaperDocUserResult", 1)?;
476 s.serialize_field(".tag", "sharing_outside_team_disabled")?;
477 s.end()
478 }
479 AddPaperDocUserResult::DailyLimitReached => {
480 let mut s = serializer.serialize_struct("AddPaperDocUserResult", 1)?;
482 s.serialize_field(".tag", "daily_limit_reached")?;
483 s.end()
484 }
485 AddPaperDocUserResult::UserIsOwner => {
486 let mut s = serializer.serialize_struct("AddPaperDocUserResult", 1)?;
488 s.serialize_field(".tag", "user_is_owner")?;
489 s.end()
490 }
491 AddPaperDocUserResult::FailedUserDataRetrieval => {
492 let mut s = serializer.serialize_struct("AddPaperDocUserResult", 1)?;
494 s.serialize_field(".tag", "failed_user_data_retrieval")?;
495 s.end()
496 }
497 AddPaperDocUserResult::PermissionAlreadyGranted => {
498 let mut s = serializer.serialize_struct("AddPaperDocUserResult", 1)?;
500 s.serialize_field(".tag", "permission_already_granted")?;
501 s.end()
502 }
503 AddPaperDocUserResult::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
504 }
505 }
506}
507
508#[derive(Debug, Clone, PartialEq, Eq)]
509#[non_exhaustive] pub struct Cursor {
511 pub value: String,
513 pub expiration: Option<crate::types::common::DropboxTimestamp>,
524}
525
526impl Cursor {
527 pub fn new(value: String) -> Self {
528 Cursor {
529 value,
530 expiration: None,
531 }
532 }
533
534 pub fn with_expiration(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
535 self.expiration = Some(value);
536 self
537 }
538}
539
540const CURSOR_FIELDS: &[&str] = &["value",
541 "expiration"];
542impl Cursor {
543 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
544 map: V,
545 ) -> Result<Cursor, V::Error> {
546 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
547 }
548
549 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
550 mut map: V,
551 optional: bool,
552 ) -> Result<Option<Cursor>, V::Error> {
553 let mut field_value = None;
554 let mut field_expiration = None;
555 let mut nothing = true;
556 while let Some(key) = map.next_key::<&str>()? {
557 nothing = false;
558 match key {
559 "value" => {
560 if field_value.is_some() {
561 return Err(::serde::de::Error::duplicate_field("value"));
562 }
563 field_value = Some(map.next_value()?);
564 }
565 "expiration" => {
566 if field_expiration.is_some() {
567 return Err(::serde::de::Error::duplicate_field("expiration"));
568 }
569 field_expiration = Some(map.next_value()?);
570 }
571 _ => {
572 map.next_value::<::serde_json::Value>()?;
574 }
575 }
576 }
577 if optional && nothing {
578 return Ok(None);
579 }
580 let result = Cursor {
581 value: field_value.ok_or_else(|| ::serde::de::Error::missing_field("value"))?,
582 expiration: field_expiration.and_then(Option::flatten),
583 };
584 Ok(Some(result))
585 }
586
587 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
588 &self,
589 s: &mut S::SerializeStruct,
590 ) -> Result<(), S::Error> {
591 use serde::ser::SerializeStruct;
592 s.serialize_field("value", &self.value)?;
593 if let Some(val) = &self.expiration {
594 s.serialize_field("expiration", val)?;
595 }
596 Ok(())
597 }
598}
599
600impl<'de> ::serde::de::Deserialize<'de> for Cursor {
601 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
602 use serde::de::{MapAccess, Visitor};
604 struct StructVisitor;
605 impl<'de> Visitor<'de> for StructVisitor {
606 type Value = Cursor;
607 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
608 f.write_str("a Cursor struct")
609 }
610 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
611 Cursor::internal_deserialize(map)
612 }
613 }
614 deserializer.deserialize_struct("Cursor", CURSOR_FIELDS, StructVisitor)
615 }
616}
617
618impl ::serde::ser::Serialize for Cursor {
619 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
620 use serde::ser::SerializeStruct;
622 let mut s = serializer.serialize_struct("Cursor", 2)?;
623 self.internal_serialize::<S>(&mut s)?;
624 s.end()
625 }
626}
627
628#[derive(Debug, Clone, PartialEq, Eq)]
629#[non_exhaustive] pub enum DocLookupError {
631 InsufficientPermissions,
636 DocNotFound,
638 Other,
641}
642
643impl<'de> ::serde::de::Deserialize<'de> for DocLookupError {
644 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
645 use serde::de::{self, MapAccess, Visitor};
647 struct EnumVisitor;
648 impl<'de> Visitor<'de> for EnumVisitor {
649 type Value = DocLookupError;
650 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
651 f.write_str("a DocLookupError structure")
652 }
653 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
654 let tag: &str = match map.next_key()? {
655 Some(".tag") => map.next_value()?,
656 _ => return Err(de::Error::missing_field(".tag"))
657 };
658 let value = match tag {
659 "insufficient_permissions" => DocLookupError::InsufficientPermissions,
660 "doc_not_found" => DocLookupError::DocNotFound,
661 _ => DocLookupError::Other,
662 };
663 crate::eat_json_fields(&mut map)?;
664 Ok(value)
665 }
666 }
667 const VARIANTS: &[&str] = &["insufficient_permissions",
668 "other",
669 "doc_not_found"];
670 deserializer.deserialize_struct("DocLookupError", VARIANTS, EnumVisitor)
671 }
672}
673
674impl ::serde::ser::Serialize for DocLookupError {
675 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
676 use serde::ser::SerializeStruct;
678 match self {
679 DocLookupError::InsufficientPermissions => {
680 let mut s = serializer.serialize_struct("DocLookupError", 1)?;
682 s.serialize_field(".tag", "insufficient_permissions")?;
683 s.end()
684 }
685 DocLookupError::DocNotFound => {
686 let mut s = serializer.serialize_struct("DocLookupError", 1)?;
688 s.serialize_field(".tag", "doc_not_found")?;
689 s.end()
690 }
691 DocLookupError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
692 }
693 }
694}
695
696impl ::std::error::Error for DocLookupError {
697}
698
699impl ::std::fmt::Display for DocLookupError {
700 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
701 match self {
702 DocLookupError::DocNotFound => f.write_str("The required doc was not found."),
703 _ => write!(f, "{:?}", *self),
704 }
705 }
706}
707
708impl From<PaperApiBaseError> for DocLookupError {
710 fn from(parent: PaperApiBaseError) -> Self {
711 match parent {
712 PaperApiBaseError::InsufficientPermissions => DocLookupError::InsufficientPermissions,
713 PaperApiBaseError::Other => DocLookupError::Other,
714 }
715 }
716}
717#[derive(Debug, Clone, PartialEq, Eq)]
719pub enum DocSubscriptionLevel {
720 Default,
722 Ignore,
724 Every,
726 NoEmail,
728}
729
730impl<'de> ::serde::de::Deserialize<'de> for DocSubscriptionLevel {
731 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
732 use serde::de::{self, MapAccess, Visitor};
734 struct EnumVisitor;
735 impl<'de> Visitor<'de> for EnumVisitor {
736 type Value = DocSubscriptionLevel;
737 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
738 f.write_str("a DocSubscriptionLevel structure")
739 }
740 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
741 let tag: &str = match map.next_key()? {
742 Some(".tag") => map.next_value()?,
743 _ => return Err(de::Error::missing_field(".tag"))
744 };
745 let value = match tag {
746 "default" => DocSubscriptionLevel::Default,
747 "ignore" => DocSubscriptionLevel::Ignore,
748 "every" => DocSubscriptionLevel::Every,
749 "no_email" => DocSubscriptionLevel::NoEmail,
750 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
751 };
752 crate::eat_json_fields(&mut map)?;
753 Ok(value)
754 }
755 }
756 const VARIANTS: &[&str] = &["default",
757 "ignore",
758 "every",
759 "no_email"];
760 deserializer.deserialize_struct("DocSubscriptionLevel", VARIANTS, EnumVisitor)
761 }
762}
763
764impl ::serde::ser::Serialize for DocSubscriptionLevel {
765 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
766 use serde::ser::SerializeStruct;
768 match self {
769 DocSubscriptionLevel::Default => {
770 let mut s = serializer.serialize_struct("DocSubscriptionLevel", 1)?;
772 s.serialize_field(".tag", "default")?;
773 s.end()
774 }
775 DocSubscriptionLevel::Ignore => {
776 let mut s = serializer.serialize_struct("DocSubscriptionLevel", 1)?;
778 s.serialize_field(".tag", "ignore")?;
779 s.end()
780 }
781 DocSubscriptionLevel::Every => {
782 let mut s = serializer.serialize_struct("DocSubscriptionLevel", 1)?;
784 s.serialize_field(".tag", "every")?;
785 s.end()
786 }
787 DocSubscriptionLevel::NoEmail => {
788 let mut s = serializer.serialize_struct("DocSubscriptionLevel", 1)?;
790 s.serialize_field(".tag", "no_email")?;
791 s.end()
792 }
793 }
794 }
795}
796
797#[derive(Debug, Clone, PartialEq, Eq)]
799#[non_exhaustive] pub enum ExportFormat {
801 Html,
803 Markdown,
805 Json,
807 Other,
810}
811
812impl<'de> ::serde::de::Deserialize<'de> for ExportFormat {
813 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
814 use serde::de::{self, MapAccess, Visitor};
816 struct EnumVisitor;
817 impl<'de> Visitor<'de> for EnumVisitor {
818 type Value = ExportFormat;
819 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
820 f.write_str("a ExportFormat structure")
821 }
822 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
823 let tag: &str = match map.next_key()? {
824 Some(".tag") => map.next_value()?,
825 _ => return Err(de::Error::missing_field(".tag"))
826 };
827 let value = match tag {
828 "html" => ExportFormat::Html,
829 "markdown" => ExportFormat::Markdown,
830 "json" => ExportFormat::Json,
831 _ => ExportFormat::Other,
832 };
833 crate::eat_json_fields(&mut map)?;
834 Ok(value)
835 }
836 }
837 const VARIANTS: &[&str] = &["html",
838 "markdown",
839 "json",
840 "other"];
841 deserializer.deserialize_struct("ExportFormat", VARIANTS, EnumVisitor)
842 }
843}
844
845impl ::serde::ser::Serialize for ExportFormat {
846 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
847 use serde::ser::SerializeStruct;
849 match self {
850 ExportFormat::Html => {
851 let mut s = serializer.serialize_struct("ExportFormat", 1)?;
853 s.serialize_field(".tag", "html")?;
854 s.end()
855 }
856 ExportFormat::Markdown => {
857 let mut s = serializer.serialize_struct("ExportFormat", 1)?;
859 s.serialize_field(".tag", "markdown")?;
860 s.end()
861 }
862 ExportFormat::Json => {
863 let mut s = serializer.serialize_struct("ExportFormat", 1)?;
865 s.serialize_field(".tag", "json")?;
866 s.end()
867 }
868 ExportFormat::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
869 }
870 }
871}
872
873#[derive(Debug, Clone, PartialEq, Eq)]
875#[non_exhaustive] pub struct Folder {
877 pub id: String,
879 pub name: String,
881}
882
883impl Folder {
884 pub fn new(id: String, name: String) -> Self {
885 Folder {
886 id,
887 name,
888 }
889 }
890}
891
892const FOLDER_FIELDS: &[&str] = &["id",
893 "name"];
894impl Folder {
895 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
896 map: V,
897 ) -> Result<Folder, V::Error> {
898 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
899 }
900
901 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
902 mut map: V,
903 optional: bool,
904 ) -> Result<Option<Folder>, V::Error> {
905 let mut field_id = None;
906 let mut field_name = None;
907 let mut nothing = true;
908 while let Some(key) = map.next_key::<&str>()? {
909 nothing = false;
910 match key {
911 "id" => {
912 if field_id.is_some() {
913 return Err(::serde::de::Error::duplicate_field("id"));
914 }
915 field_id = Some(map.next_value()?);
916 }
917 "name" => {
918 if field_name.is_some() {
919 return Err(::serde::de::Error::duplicate_field("name"));
920 }
921 field_name = Some(map.next_value()?);
922 }
923 _ => {
924 map.next_value::<::serde_json::Value>()?;
926 }
927 }
928 }
929 if optional && nothing {
930 return Ok(None);
931 }
932 let result = Folder {
933 id: field_id.ok_or_else(|| ::serde::de::Error::missing_field("id"))?,
934 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
935 };
936 Ok(Some(result))
937 }
938
939 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
940 &self,
941 s: &mut S::SerializeStruct,
942 ) -> Result<(), S::Error> {
943 use serde::ser::SerializeStruct;
944 s.serialize_field("id", &self.id)?;
945 s.serialize_field("name", &self.name)?;
946 Ok(())
947 }
948}
949
950impl<'de> ::serde::de::Deserialize<'de> for Folder {
951 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
952 use serde::de::{MapAccess, Visitor};
954 struct StructVisitor;
955 impl<'de> Visitor<'de> for StructVisitor {
956 type Value = Folder;
957 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
958 f.write_str("a Folder struct")
959 }
960 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
961 Folder::internal_deserialize(map)
962 }
963 }
964 deserializer.deserialize_struct("Folder", FOLDER_FIELDS, StructVisitor)
965 }
966}
967
968impl ::serde::ser::Serialize for Folder {
969 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
970 use serde::ser::SerializeStruct;
972 let mut s = serializer.serialize_struct("Folder", 2)?;
973 self.internal_serialize::<S>(&mut s)?;
974 s.end()
975 }
976}
977
978#[derive(Debug, Clone, PartialEq, Eq)]
981pub enum FolderSharingPolicyType {
982 Team,
984 InviteOnly,
986}
987
988impl<'de> ::serde::de::Deserialize<'de> for FolderSharingPolicyType {
989 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
990 use serde::de::{self, MapAccess, Visitor};
992 struct EnumVisitor;
993 impl<'de> Visitor<'de> for EnumVisitor {
994 type Value = FolderSharingPolicyType;
995 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
996 f.write_str("a FolderSharingPolicyType structure")
997 }
998 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
999 let tag: &str = match map.next_key()? {
1000 Some(".tag") => map.next_value()?,
1001 _ => return Err(de::Error::missing_field(".tag"))
1002 };
1003 let value = match tag {
1004 "team" => FolderSharingPolicyType::Team,
1005 "invite_only" => FolderSharingPolicyType::InviteOnly,
1006 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
1007 };
1008 crate::eat_json_fields(&mut map)?;
1009 Ok(value)
1010 }
1011 }
1012 const VARIANTS: &[&str] = &["team",
1013 "invite_only"];
1014 deserializer.deserialize_struct("FolderSharingPolicyType", VARIANTS, EnumVisitor)
1015 }
1016}
1017
1018impl ::serde::ser::Serialize for FolderSharingPolicyType {
1019 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1020 use serde::ser::SerializeStruct;
1022 match self {
1023 FolderSharingPolicyType::Team => {
1024 let mut s = serializer.serialize_struct("FolderSharingPolicyType", 1)?;
1026 s.serialize_field(".tag", "team")?;
1027 s.end()
1028 }
1029 FolderSharingPolicyType::InviteOnly => {
1030 let mut s = serializer.serialize_struct("FolderSharingPolicyType", 1)?;
1032 s.serialize_field(".tag", "invite_only")?;
1033 s.end()
1034 }
1035 }
1036 }
1037}
1038
1039#[derive(Debug, Clone, PartialEq, Eq)]
1041pub enum FolderSubscriptionLevel {
1042 None,
1044 ActivityOnly,
1046 DailyEmails,
1048 WeeklyEmails,
1050}
1051
1052impl<'de> ::serde::de::Deserialize<'de> for FolderSubscriptionLevel {
1053 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1054 use serde::de::{self, MapAccess, Visitor};
1056 struct EnumVisitor;
1057 impl<'de> Visitor<'de> for EnumVisitor {
1058 type Value = FolderSubscriptionLevel;
1059 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1060 f.write_str("a FolderSubscriptionLevel structure")
1061 }
1062 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1063 let tag: &str = match map.next_key()? {
1064 Some(".tag") => map.next_value()?,
1065 _ => return Err(de::Error::missing_field(".tag"))
1066 };
1067 let value = match tag {
1068 "none" => FolderSubscriptionLevel::None,
1069 "activity_only" => FolderSubscriptionLevel::ActivityOnly,
1070 "daily_emails" => FolderSubscriptionLevel::DailyEmails,
1071 "weekly_emails" => FolderSubscriptionLevel::WeeklyEmails,
1072 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
1073 };
1074 crate::eat_json_fields(&mut map)?;
1075 Ok(value)
1076 }
1077 }
1078 const VARIANTS: &[&str] = &["none",
1079 "activity_only",
1080 "daily_emails",
1081 "weekly_emails"];
1082 deserializer.deserialize_struct("FolderSubscriptionLevel", VARIANTS, EnumVisitor)
1083 }
1084}
1085
1086impl ::serde::ser::Serialize for FolderSubscriptionLevel {
1087 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1088 use serde::ser::SerializeStruct;
1090 match self {
1091 FolderSubscriptionLevel::None => {
1092 let mut s = serializer.serialize_struct("FolderSubscriptionLevel", 1)?;
1094 s.serialize_field(".tag", "none")?;
1095 s.end()
1096 }
1097 FolderSubscriptionLevel::ActivityOnly => {
1098 let mut s = serializer.serialize_struct("FolderSubscriptionLevel", 1)?;
1100 s.serialize_field(".tag", "activity_only")?;
1101 s.end()
1102 }
1103 FolderSubscriptionLevel::DailyEmails => {
1104 let mut s = serializer.serialize_struct("FolderSubscriptionLevel", 1)?;
1106 s.serialize_field(".tag", "daily_emails")?;
1107 s.end()
1108 }
1109 FolderSubscriptionLevel::WeeklyEmails => {
1110 let mut s = serializer.serialize_struct("FolderSubscriptionLevel", 1)?;
1112 s.serialize_field(".tag", "weekly_emails")?;
1113 s.end()
1114 }
1115 }
1116 }
1117}
1118
1119#[derive(Debug, Clone, PartialEq, Eq, Default)]
1121#[non_exhaustive] pub struct FoldersContainingPaperDoc {
1123 pub folder_sharing_policy_type: Option<FolderSharingPolicyType>,
1125 pub folders: Option<Vec<Folder>>,
1127}
1128
1129impl FoldersContainingPaperDoc {
1130 pub fn with_folder_sharing_policy_type(mut self, value: FolderSharingPolicyType) -> Self {
1131 self.folder_sharing_policy_type = Some(value);
1132 self
1133 }
1134
1135 pub fn with_folders(mut self, value: Vec<Folder>) -> Self {
1136 self.folders = Some(value);
1137 self
1138 }
1139}
1140
1141const FOLDERS_CONTAINING_PAPER_DOC_FIELDS: &[&str] = &["folder_sharing_policy_type",
1142 "folders"];
1143impl FoldersContainingPaperDoc {
1144 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1146 mut map: V,
1147 ) -> Result<FoldersContainingPaperDoc, V::Error> {
1148 let mut field_folder_sharing_policy_type = None;
1149 let mut field_folders = None;
1150 while let Some(key) = map.next_key::<&str>()? {
1151 match key {
1152 "folder_sharing_policy_type" => {
1153 if field_folder_sharing_policy_type.is_some() {
1154 return Err(::serde::de::Error::duplicate_field("folder_sharing_policy_type"));
1155 }
1156 field_folder_sharing_policy_type = Some(map.next_value()?);
1157 }
1158 "folders" => {
1159 if field_folders.is_some() {
1160 return Err(::serde::de::Error::duplicate_field("folders"));
1161 }
1162 field_folders = Some(map.next_value()?);
1163 }
1164 _ => {
1165 map.next_value::<::serde_json::Value>()?;
1167 }
1168 }
1169 }
1170 let result = FoldersContainingPaperDoc {
1171 folder_sharing_policy_type: field_folder_sharing_policy_type.and_then(Option::flatten),
1172 folders: field_folders.and_then(Option::flatten),
1173 };
1174 Ok(result)
1175 }
1176
1177 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1178 &self,
1179 s: &mut S::SerializeStruct,
1180 ) -> Result<(), S::Error> {
1181 use serde::ser::SerializeStruct;
1182 if let Some(val) = &self.folder_sharing_policy_type {
1183 s.serialize_field("folder_sharing_policy_type", val)?;
1184 }
1185 if let Some(val) = &self.folders {
1186 s.serialize_field("folders", val)?;
1187 }
1188 Ok(())
1189 }
1190}
1191
1192impl<'de> ::serde::de::Deserialize<'de> for FoldersContainingPaperDoc {
1193 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1194 use serde::de::{MapAccess, Visitor};
1196 struct StructVisitor;
1197 impl<'de> Visitor<'de> for StructVisitor {
1198 type Value = FoldersContainingPaperDoc;
1199 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1200 f.write_str("a FoldersContainingPaperDoc struct")
1201 }
1202 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1203 FoldersContainingPaperDoc::internal_deserialize(map)
1204 }
1205 }
1206 deserializer.deserialize_struct("FoldersContainingPaperDoc", FOLDERS_CONTAINING_PAPER_DOC_FIELDS, StructVisitor)
1207 }
1208}
1209
1210impl ::serde::ser::Serialize for FoldersContainingPaperDoc {
1211 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1212 use serde::ser::SerializeStruct;
1214 let mut s = serializer.serialize_struct("FoldersContainingPaperDoc", 2)?;
1215 self.internal_serialize::<S>(&mut s)?;
1216 s.end()
1217 }
1218}
1219
1220#[derive(Debug, Clone, PartialEq, Eq, Default)]
1223#[non_exhaustive] pub struct GetDocMetadataArg {
1225 pub doc_id: Option<PaperDocId>,
1227 pub file_id: Option<crate::types::files::FileId>,
1229}
1230
1231impl GetDocMetadataArg {
1232 pub fn with_doc_id(mut self, value: PaperDocId) -> Self {
1233 self.doc_id = Some(value);
1234 self
1235 }
1236
1237 pub fn with_file_id(mut self, value: crate::types::files::FileId) -> Self {
1238 self.file_id = Some(value);
1239 self
1240 }
1241}
1242
1243const GET_DOC_METADATA_ARG_FIELDS: &[&str] = &["doc_id",
1244 "file_id"];
1245impl GetDocMetadataArg {
1246 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1248 mut map: V,
1249 ) -> Result<GetDocMetadataArg, V::Error> {
1250 let mut field_doc_id = None;
1251 let mut field_file_id = None;
1252 while let Some(key) = map.next_key::<&str>()? {
1253 match key {
1254 "doc_id" => {
1255 if field_doc_id.is_some() {
1256 return Err(::serde::de::Error::duplicate_field("doc_id"));
1257 }
1258 field_doc_id = Some(map.next_value()?);
1259 }
1260 "file_id" => {
1261 if field_file_id.is_some() {
1262 return Err(::serde::de::Error::duplicate_field("file_id"));
1263 }
1264 field_file_id = Some(map.next_value()?);
1265 }
1266 _ => {
1267 map.next_value::<::serde_json::Value>()?;
1269 }
1270 }
1271 }
1272 let result = GetDocMetadataArg {
1273 doc_id: field_doc_id.and_then(Option::flatten),
1274 file_id: field_file_id.and_then(Option::flatten),
1275 };
1276 Ok(result)
1277 }
1278
1279 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1280 &self,
1281 s: &mut S::SerializeStruct,
1282 ) -> Result<(), S::Error> {
1283 use serde::ser::SerializeStruct;
1284 if let Some(val) = &self.doc_id {
1285 s.serialize_field("doc_id", val)?;
1286 }
1287 if let Some(val) = &self.file_id {
1288 s.serialize_field("file_id", val)?;
1289 }
1290 Ok(())
1291 }
1292}
1293
1294impl<'de> ::serde::de::Deserialize<'de> for GetDocMetadataArg {
1295 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1296 use serde::de::{MapAccess, Visitor};
1298 struct StructVisitor;
1299 impl<'de> Visitor<'de> for StructVisitor {
1300 type Value = GetDocMetadataArg;
1301 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1302 f.write_str("a GetDocMetadataArg struct")
1303 }
1304 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1305 GetDocMetadataArg::internal_deserialize(map)
1306 }
1307 }
1308 deserializer.deserialize_struct("GetDocMetadataArg", GET_DOC_METADATA_ARG_FIELDS, StructVisitor)
1309 }
1310}
1311
1312impl ::serde::ser::Serialize for GetDocMetadataArg {
1313 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1314 use serde::ser::SerializeStruct;
1316 let mut s = serializer.serialize_struct("GetDocMetadataArg", 2)?;
1317 self.internal_serialize::<S>(&mut s)?;
1318 s.end()
1319 }
1320}
1321
1322#[derive(Debug, Clone, PartialEq, Eq)]
1324#[non_exhaustive] pub enum ImportFormat {
1326 Html,
1328 Markdown,
1331 PlainText,
1334 Other,
1337}
1338
1339impl<'de> ::serde::de::Deserialize<'de> for ImportFormat {
1340 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1341 use serde::de::{self, MapAccess, Visitor};
1343 struct EnumVisitor;
1344 impl<'de> Visitor<'de> for EnumVisitor {
1345 type Value = ImportFormat;
1346 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1347 f.write_str("a ImportFormat structure")
1348 }
1349 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1350 let tag: &str = match map.next_key()? {
1351 Some(".tag") => map.next_value()?,
1352 _ => return Err(de::Error::missing_field(".tag"))
1353 };
1354 let value = match tag {
1355 "html" => ImportFormat::Html,
1356 "markdown" => ImportFormat::Markdown,
1357 "plain_text" => ImportFormat::PlainText,
1358 _ => ImportFormat::Other,
1359 };
1360 crate::eat_json_fields(&mut map)?;
1361 Ok(value)
1362 }
1363 }
1364 const VARIANTS: &[&str] = &["html",
1365 "markdown",
1366 "plain_text",
1367 "other"];
1368 deserializer.deserialize_struct("ImportFormat", VARIANTS, EnumVisitor)
1369 }
1370}
1371
1372impl ::serde::ser::Serialize for ImportFormat {
1373 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1374 use serde::ser::SerializeStruct;
1376 match self {
1377 ImportFormat::Html => {
1378 let mut s = serializer.serialize_struct("ImportFormat", 1)?;
1380 s.serialize_field(".tag", "html")?;
1381 s.end()
1382 }
1383 ImportFormat::Markdown => {
1384 let mut s = serializer.serialize_struct("ImportFormat", 1)?;
1386 s.serialize_field(".tag", "markdown")?;
1387 s.end()
1388 }
1389 ImportFormat::PlainText => {
1390 let mut s = serializer.serialize_struct("ImportFormat", 1)?;
1392 s.serialize_field(".tag", "plain_text")?;
1393 s.end()
1394 }
1395 ImportFormat::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1396 }
1397 }
1398}
1399
1400#[derive(Debug, Clone, PartialEq, Eq)]
1401#[non_exhaustive] pub struct InviteeInfoWithPermissionLevel {
1403 pub invitee: crate::types::sharing::InviteeInfo,
1405 pub permission_level: PaperDocPermissionLevel,
1407}
1408
1409impl InviteeInfoWithPermissionLevel {
1410 pub fn new(
1411 invitee: crate::types::sharing::InviteeInfo,
1412 permission_level: PaperDocPermissionLevel,
1413 ) -> Self {
1414 InviteeInfoWithPermissionLevel {
1415 invitee,
1416 permission_level,
1417 }
1418 }
1419}
1420
1421const INVITEE_INFO_WITH_PERMISSION_LEVEL_FIELDS: &[&str] = &["invitee",
1422 "permission_level"];
1423impl InviteeInfoWithPermissionLevel {
1424 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1425 map: V,
1426 ) -> Result<InviteeInfoWithPermissionLevel, V::Error> {
1427 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1428 }
1429
1430 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1431 mut map: V,
1432 optional: bool,
1433 ) -> Result<Option<InviteeInfoWithPermissionLevel>, V::Error> {
1434 let mut field_invitee = None;
1435 let mut field_permission_level = None;
1436 let mut nothing = true;
1437 while let Some(key) = map.next_key::<&str>()? {
1438 nothing = false;
1439 match key {
1440 "invitee" => {
1441 if field_invitee.is_some() {
1442 return Err(::serde::de::Error::duplicate_field("invitee"));
1443 }
1444 field_invitee = Some(map.next_value()?);
1445 }
1446 "permission_level" => {
1447 if field_permission_level.is_some() {
1448 return Err(::serde::de::Error::duplicate_field("permission_level"));
1449 }
1450 field_permission_level = Some(map.next_value()?);
1451 }
1452 _ => {
1453 map.next_value::<::serde_json::Value>()?;
1455 }
1456 }
1457 }
1458 if optional && nothing {
1459 return Ok(None);
1460 }
1461 let result = InviteeInfoWithPermissionLevel {
1462 invitee: field_invitee.ok_or_else(|| ::serde::de::Error::missing_field("invitee"))?,
1463 permission_level: field_permission_level.ok_or_else(|| ::serde::de::Error::missing_field("permission_level"))?,
1464 };
1465 Ok(Some(result))
1466 }
1467
1468 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1469 &self,
1470 s: &mut S::SerializeStruct,
1471 ) -> Result<(), S::Error> {
1472 use serde::ser::SerializeStruct;
1473 s.serialize_field("invitee", &self.invitee)?;
1474 s.serialize_field("permission_level", &self.permission_level)?;
1475 Ok(())
1476 }
1477}
1478
1479impl<'de> ::serde::de::Deserialize<'de> for InviteeInfoWithPermissionLevel {
1480 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1481 use serde::de::{MapAccess, Visitor};
1483 struct StructVisitor;
1484 impl<'de> Visitor<'de> for StructVisitor {
1485 type Value = InviteeInfoWithPermissionLevel;
1486 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1487 f.write_str("a InviteeInfoWithPermissionLevel struct")
1488 }
1489 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1490 InviteeInfoWithPermissionLevel::internal_deserialize(map)
1491 }
1492 }
1493 deserializer.deserialize_struct("InviteeInfoWithPermissionLevel", INVITEE_INFO_WITH_PERMISSION_LEVEL_FIELDS, StructVisitor)
1494 }
1495}
1496
1497impl ::serde::ser::Serialize for InviteeInfoWithPermissionLevel {
1498 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1499 use serde::ser::SerializeStruct;
1501 let mut s = serializer.serialize_struct("InviteeInfoWithPermissionLevel", 2)?;
1502 self.internal_serialize::<S>(&mut s)?;
1503 s.end()
1504 }
1505}
1506
1507#[derive(Debug, Clone, PartialEq, Eq)]
1508#[non_exhaustive] pub enum ListDocsCursorError {
1510 CursorError(PaperApiCursorError),
1511 Other,
1514}
1515
1516impl<'de> ::serde::de::Deserialize<'de> for ListDocsCursorError {
1517 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1518 use serde::de::{self, MapAccess, Visitor};
1520 struct EnumVisitor;
1521 impl<'de> Visitor<'de> for EnumVisitor {
1522 type Value = ListDocsCursorError;
1523 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1524 f.write_str("a ListDocsCursorError structure")
1525 }
1526 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1527 let tag: &str = match map.next_key()? {
1528 Some(".tag") => map.next_value()?,
1529 _ => return Err(de::Error::missing_field(".tag"))
1530 };
1531 let value = match tag {
1532 "cursor_error" => {
1533 match map.next_key()? {
1534 Some("cursor_error") => ListDocsCursorError::CursorError(map.next_value()?),
1535 None => return Err(de::Error::missing_field("cursor_error")),
1536 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
1537 }
1538 }
1539 _ => ListDocsCursorError::Other,
1540 };
1541 crate::eat_json_fields(&mut map)?;
1542 Ok(value)
1543 }
1544 }
1545 const VARIANTS: &[&str] = &["cursor_error",
1546 "other"];
1547 deserializer.deserialize_struct("ListDocsCursorError", VARIANTS, EnumVisitor)
1548 }
1549}
1550
1551impl ::serde::ser::Serialize for ListDocsCursorError {
1552 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1553 use serde::ser::SerializeStruct;
1555 match self {
1556 ListDocsCursorError::CursorError(x) => {
1557 let mut s = serializer.serialize_struct("ListDocsCursorError", 2)?;
1559 s.serialize_field(".tag", "cursor_error")?;
1560 s.serialize_field("cursor_error", x)?;
1561 s.end()
1562 }
1563 ListDocsCursorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1564 }
1565 }
1566}
1567
1568impl ::std::error::Error for ListDocsCursorError {
1569 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
1570 match self {
1571 ListDocsCursorError::CursorError(inner) => Some(inner),
1572 _ => None,
1573 }
1574 }
1575}
1576
1577impl ::std::fmt::Display for ListDocsCursorError {
1578 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1579 match self {
1580 ListDocsCursorError::CursorError(inner) => write!(f, "ListDocsCursorError: {}", inner),
1581 _ => write!(f, "{:?}", *self),
1582 }
1583 }
1584}
1585
1586#[derive(Debug, Clone, PartialEq, Eq)]
1587#[non_exhaustive] pub struct ListPaperDocsArgs {
1589 pub filter_by: ListPaperDocsFilterBy,
1591 pub sort_by: ListPaperDocsSortBy,
1593 pub sort_order: ListPaperDocsSortOrder,
1595 pub limit: i32,
1598 pub stop_at_date: Option<crate::types::common::DropboxTimestamp>,
1600}
1601
1602impl Default for ListPaperDocsArgs {
1603 fn default() -> Self {
1604 ListPaperDocsArgs {
1605 filter_by: ListPaperDocsFilterBy::DocsAccessed,
1606 sort_by: ListPaperDocsSortBy::Accessed,
1607 sort_order: ListPaperDocsSortOrder::Ascending,
1608 limit: 1000,
1609 stop_at_date: None,
1610 }
1611 }
1612}
1613
1614impl ListPaperDocsArgs {
1615 pub fn with_filter_by(mut self, value: ListPaperDocsFilterBy) -> Self {
1616 self.filter_by = value;
1617 self
1618 }
1619
1620 pub fn with_sort_by(mut self, value: ListPaperDocsSortBy) -> Self {
1621 self.sort_by = value;
1622 self
1623 }
1624
1625 pub fn with_sort_order(mut self, value: ListPaperDocsSortOrder) -> Self {
1626 self.sort_order = value;
1627 self
1628 }
1629
1630 pub fn with_limit(mut self, value: i32) -> Self {
1631 self.limit = value;
1632 self
1633 }
1634
1635 pub fn with_stop_at_date(mut self, value: crate::types::common::DropboxTimestamp) -> Self {
1636 self.stop_at_date = Some(value);
1637 self
1638 }
1639}
1640
1641const LIST_PAPER_DOCS_ARGS_FIELDS: &[&str] = &["filter_by",
1642 "sort_by",
1643 "sort_order",
1644 "limit",
1645 "stop_at_date"];
1646impl ListPaperDocsArgs {
1647 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1649 mut map: V,
1650 ) -> Result<ListPaperDocsArgs, V::Error> {
1651 let mut field_filter_by = None;
1652 let mut field_sort_by = None;
1653 let mut field_sort_order = None;
1654 let mut field_limit = None;
1655 let mut field_stop_at_date = None;
1656 while let Some(key) = map.next_key::<&str>()? {
1657 match key {
1658 "filter_by" => {
1659 if field_filter_by.is_some() {
1660 return Err(::serde::de::Error::duplicate_field("filter_by"));
1661 }
1662 field_filter_by = Some(map.next_value()?);
1663 }
1664 "sort_by" => {
1665 if field_sort_by.is_some() {
1666 return Err(::serde::de::Error::duplicate_field("sort_by"));
1667 }
1668 field_sort_by = Some(map.next_value()?);
1669 }
1670 "sort_order" => {
1671 if field_sort_order.is_some() {
1672 return Err(::serde::de::Error::duplicate_field("sort_order"));
1673 }
1674 field_sort_order = Some(map.next_value()?);
1675 }
1676 "limit" => {
1677 if field_limit.is_some() {
1678 return Err(::serde::de::Error::duplicate_field("limit"));
1679 }
1680 field_limit = Some(map.next_value()?);
1681 }
1682 "stop_at_date" => {
1683 if field_stop_at_date.is_some() {
1684 return Err(::serde::de::Error::duplicate_field("stop_at_date"));
1685 }
1686 field_stop_at_date = Some(map.next_value()?);
1687 }
1688 _ => {
1689 map.next_value::<::serde_json::Value>()?;
1691 }
1692 }
1693 }
1694 let result = ListPaperDocsArgs {
1695 filter_by: field_filter_by.unwrap_or(ListPaperDocsFilterBy::DocsAccessed),
1696 sort_by: field_sort_by.unwrap_or(ListPaperDocsSortBy::Accessed),
1697 sort_order: field_sort_order.unwrap_or(ListPaperDocsSortOrder::Ascending),
1698 limit: field_limit.unwrap_or(1000),
1699 stop_at_date: field_stop_at_date.and_then(Option::flatten),
1700 };
1701 Ok(result)
1702 }
1703
1704 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1705 &self,
1706 s: &mut S::SerializeStruct,
1707 ) -> Result<(), S::Error> {
1708 use serde::ser::SerializeStruct;
1709 if self.filter_by != ListPaperDocsFilterBy::DocsAccessed {
1710 s.serialize_field("filter_by", &self.filter_by)?;
1711 }
1712 if self.sort_by != ListPaperDocsSortBy::Accessed {
1713 s.serialize_field("sort_by", &self.sort_by)?;
1714 }
1715 if self.sort_order != ListPaperDocsSortOrder::Ascending {
1716 s.serialize_field("sort_order", &self.sort_order)?;
1717 }
1718 if self.limit != 1000 {
1719 s.serialize_field("limit", &self.limit)?;
1720 }
1721 if let Some(val) = &self.stop_at_date {
1722 s.serialize_field("stop_at_date", val)?;
1723 }
1724 Ok(())
1725 }
1726}
1727
1728impl<'de> ::serde::de::Deserialize<'de> for ListPaperDocsArgs {
1729 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1730 use serde::de::{MapAccess, Visitor};
1732 struct StructVisitor;
1733 impl<'de> Visitor<'de> for StructVisitor {
1734 type Value = ListPaperDocsArgs;
1735 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1736 f.write_str("a ListPaperDocsArgs struct")
1737 }
1738 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1739 ListPaperDocsArgs::internal_deserialize(map)
1740 }
1741 }
1742 deserializer.deserialize_struct("ListPaperDocsArgs", LIST_PAPER_DOCS_ARGS_FIELDS, StructVisitor)
1743 }
1744}
1745
1746impl ::serde::ser::Serialize for ListPaperDocsArgs {
1747 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1748 use serde::ser::SerializeStruct;
1750 let mut s = serializer.serialize_struct("ListPaperDocsArgs", 5)?;
1751 self.internal_serialize::<S>(&mut s)?;
1752 s.end()
1753 }
1754}
1755
1756#[derive(Debug, Clone, PartialEq, Eq)]
1757#[non_exhaustive] pub struct ListPaperDocsContinueArgs {
1759 pub cursor: String,
1762}
1763
1764impl ListPaperDocsContinueArgs {
1765 pub fn new(cursor: String) -> Self {
1766 ListPaperDocsContinueArgs {
1767 cursor,
1768 }
1769 }
1770}
1771
1772const LIST_PAPER_DOCS_CONTINUE_ARGS_FIELDS: &[&str] = &["cursor"];
1773impl ListPaperDocsContinueArgs {
1774 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1775 map: V,
1776 ) -> Result<ListPaperDocsContinueArgs, V::Error> {
1777 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1778 }
1779
1780 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1781 mut map: V,
1782 optional: bool,
1783 ) -> Result<Option<ListPaperDocsContinueArgs>, V::Error> {
1784 let mut field_cursor = None;
1785 let mut nothing = true;
1786 while let Some(key) = map.next_key::<&str>()? {
1787 nothing = false;
1788 match key {
1789 "cursor" => {
1790 if field_cursor.is_some() {
1791 return Err(::serde::de::Error::duplicate_field("cursor"));
1792 }
1793 field_cursor = Some(map.next_value()?);
1794 }
1795 _ => {
1796 map.next_value::<::serde_json::Value>()?;
1798 }
1799 }
1800 }
1801 if optional && nothing {
1802 return Ok(None);
1803 }
1804 let result = ListPaperDocsContinueArgs {
1805 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
1806 };
1807 Ok(Some(result))
1808 }
1809
1810 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1811 &self,
1812 s: &mut S::SerializeStruct,
1813 ) -> Result<(), S::Error> {
1814 use serde::ser::SerializeStruct;
1815 s.serialize_field("cursor", &self.cursor)?;
1816 Ok(())
1817 }
1818}
1819
1820impl<'de> ::serde::de::Deserialize<'de> for ListPaperDocsContinueArgs {
1821 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1822 use serde::de::{MapAccess, Visitor};
1824 struct StructVisitor;
1825 impl<'de> Visitor<'de> for StructVisitor {
1826 type Value = ListPaperDocsContinueArgs;
1827 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1828 f.write_str("a ListPaperDocsContinueArgs struct")
1829 }
1830 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
1831 ListPaperDocsContinueArgs::internal_deserialize(map)
1832 }
1833 }
1834 deserializer.deserialize_struct("ListPaperDocsContinueArgs", LIST_PAPER_DOCS_CONTINUE_ARGS_FIELDS, StructVisitor)
1835 }
1836}
1837
1838impl ::serde::ser::Serialize for ListPaperDocsContinueArgs {
1839 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1840 use serde::ser::SerializeStruct;
1842 let mut s = serializer.serialize_struct("ListPaperDocsContinueArgs", 1)?;
1843 self.internal_serialize::<S>(&mut s)?;
1844 s.end()
1845 }
1846}
1847
1848#[derive(Debug, Clone, PartialEq, Eq)]
1849#[non_exhaustive] pub enum ListPaperDocsFilterBy {
1851 DocsAccessed,
1853 DocsCreated,
1855 Other,
1858}
1859
1860impl<'de> ::serde::de::Deserialize<'de> for ListPaperDocsFilterBy {
1861 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1862 use serde::de::{self, MapAccess, Visitor};
1864 struct EnumVisitor;
1865 impl<'de> Visitor<'de> for EnumVisitor {
1866 type Value = ListPaperDocsFilterBy;
1867 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1868 f.write_str("a ListPaperDocsFilterBy structure")
1869 }
1870 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
1871 let tag: &str = match map.next_key()? {
1872 Some(".tag") => map.next_value()?,
1873 _ => return Err(de::Error::missing_field(".tag"))
1874 };
1875 let value = match tag {
1876 "docs_accessed" => ListPaperDocsFilterBy::DocsAccessed,
1877 "docs_created" => ListPaperDocsFilterBy::DocsCreated,
1878 _ => ListPaperDocsFilterBy::Other,
1879 };
1880 crate::eat_json_fields(&mut map)?;
1881 Ok(value)
1882 }
1883 }
1884 const VARIANTS: &[&str] = &["docs_accessed",
1885 "docs_created",
1886 "other"];
1887 deserializer.deserialize_struct("ListPaperDocsFilterBy", VARIANTS, EnumVisitor)
1888 }
1889}
1890
1891impl ::serde::ser::Serialize for ListPaperDocsFilterBy {
1892 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1893 use serde::ser::SerializeStruct;
1895 match self {
1896 ListPaperDocsFilterBy::DocsAccessed => {
1897 let mut s = serializer.serialize_struct("ListPaperDocsFilterBy", 1)?;
1899 s.serialize_field(".tag", "docs_accessed")?;
1900 s.end()
1901 }
1902 ListPaperDocsFilterBy::DocsCreated => {
1903 let mut s = serializer.serialize_struct("ListPaperDocsFilterBy", 1)?;
1905 s.serialize_field(".tag", "docs_created")?;
1906 s.end()
1907 }
1908 ListPaperDocsFilterBy::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
1909 }
1910 }
1911}
1912
1913#[derive(Debug, Clone, PartialEq, Eq)]
1914#[non_exhaustive] pub struct ListPaperDocsResponse {
1916 pub doc_ids: Vec<PaperDocId>,
1920 pub cursor: Cursor,
1924 pub has_more: bool,
1929}
1930
1931impl ListPaperDocsResponse {
1932 pub fn new(doc_ids: Vec<PaperDocId>, cursor: Cursor, has_more: bool) -> Self {
1933 ListPaperDocsResponse {
1934 doc_ids,
1935 cursor,
1936 has_more,
1937 }
1938 }
1939}
1940
1941const LIST_PAPER_DOCS_RESPONSE_FIELDS: &[&str] = &["doc_ids",
1942 "cursor",
1943 "has_more"];
1944impl ListPaperDocsResponse {
1945 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
1946 map: V,
1947 ) -> Result<ListPaperDocsResponse, V::Error> {
1948 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
1949 }
1950
1951 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
1952 mut map: V,
1953 optional: bool,
1954 ) -> Result<Option<ListPaperDocsResponse>, V::Error> {
1955 let mut field_doc_ids = None;
1956 let mut field_cursor = None;
1957 let mut field_has_more = None;
1958 let mut nothing = true;
1959 while let Some(key) = map.next_key::<&str>()? {
1960 nothing = false;
1961 match key {
1962 "doc_ids" => {
1963 if field_doc_ids.is_some() {
1964 return Err(::serde::de::Error::duplicate_field("doc_ids"));
1965 }
1966 field_doc_ids = Some(map.next_value()?);
1967 }
1968 "cursor" => {
1969 if field_cursor.is_some() {
1970 return Err(::serde::de::Error::duplicate_field("cursor"));
1971 }
1972 field_cursor = Some(map.next_value()?);
1973 }
1974 "has_more" => {
1975 if field_has_more.is_some() {
1976 return Err(::serde::de::Error::duplicate_field("has_more"));
1977 }
1978 field_has_more = Some(map.next_value()?);
1979 }
1980 _ => {
1981 map.next_value::<::serde_json::Value>()?;
1983 }
1984 }
1985 }
1986 if optional && nothing {
1987 return Ok(None);
1988 }
1989 let result = ListPaperDocsResponse {
1990 doc_ids: field_doc_ids.ok_or_else(|| ::serde::de::Error::missing_field("doc_ids"))?,
1991 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
1992 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
1993 };
1994 Ok(Some(result))
1995 }
1996
1997 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
1998 &self,
1999 s: &mut S::SerializeStruct,
2000 ) -> Result<(), S::Error> {
2001 use serde::ser::SerializeStruct;
2002 s.serialize_field("doc_ids", &self.doc_ids)?;
2003 s.serialize_field("cursor", &self.cursor)?;
2004 s.serialize_field("has_more", &self.has_more)?;
2005 Ok(())
2006 }
2007}
2008
2009impl<'de> ::serde::de::Deserialize<'de> for ListPaperDocsResponse {
2010 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2011 use serde::de::{MapAccess, Visitor};
2013 struct StructVisitor;
2014 impl<'de> Visitor<'de> for StructVisitor {
2015 type Value = ListPaperDocsResponse;
2016 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2017 f.write_str("a ListPaperDocsResponse struct")
2018 }
2019 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2020 ListPaperDocsResponse::internal_deserialize(map)
2021 }
2022 }
2023 deserializer.deserialize_struct("ListPaperDocsResponse", LIST_PAPER_DOCS_RESPONSE_FIELDS, StructVisitor)
2024 }
2025}
2026
2027impl ::serde::ser::Serialize for ListPaperDocsResponse {
2028 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2029 use serde::ser::SerializeStruct;
2031 let mut s = serializer.serialize_struct("ListPaperDocsResponse", 3)?;
2032 self.internal_serialize::<S>(&mut s)?;
2033 s.end()
2034 }
2035}
2036
2037#[derive(Debug, Clone, PartialEq, Eq)]
2038#[non_exhaustive] pub enum ListPaperDocsSortBy {
2040 Accessed,
2042 Modified,
2044 Created,
2046 Other,
2049}
2050
2051impl<'de> ::serde::de::Deserialize<'de> for ListPaperDocsSortBy {
2052 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2053 use serde::de::{self, MapAccess, Visitor};
2055 struct EnumVisitor;
2056 impl<'de> Visitor<'de> for EnumVisitor {
2057 type Value = ListPaperDocsSortBy;
2058 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2059 f.write_str("a ListPaperDocsSortBy structure")
2060 }
2061 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2062 let tag: &str = match map.next_key()? {
2063 Some(".tag") => map.next_value()?,
2064 _ => return Err(de::Error::missing_field(".tag"))
2065 };
2066 let value = match tag {
2067 "accessed" => ListPaperDocsSortBy::Accessed,
2068 "modified" => ListPaperDocsSortBy::Modified,
2069 "created" => ListPaperDocsSortBy::Created,
2070 _ => ListPaperDocsSortBy::Other,
2071 };
2072 crate::eat_json_fields(&mut map)?;
2073 Ok(value)
2074 }
2075 }
2076 const VARIANTS: &[&str] = &["accessed",
2077 "modified",
2078 "created",
2079 "other"];
2080 deserializer.deserialize_struct("ListPaperDocsSortBy", VARIANTS, EnumVisitor)
2081 }
2082}
2083
2084impl ::serde::ser::Serialize for ListPaperDocsSortBy {
2085 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2086 use serde::ser::SerializeStruct;
2088 match self {
2089 ListPaperDocsSortBy::Accessed => {
2090 let mut s = serializer.serialize_struct("ListPaperDocsSortBy", 1)?;
2092 s.serialize_field(".tag", "accessed")?;
2093 s.end()
2094 }
2095 ListPaperDocsSortBy::Modified => {
2096 let mut s = serializer.serialize_struct("ListPaperDocsSortBy", 1)?;
2098 s.serialize_field(".tag", "modified")?;
2099 s.end()
2100 }
2101 ListPaperDocsSortBy::Created => {
2102 let mut s = serializer.serialize_struct("ListPaperDocsSortBy", 1)?;
2104 s.serialize_field(".tag", "created")?;
2105 s.end()
2106 }
2107 ListPaperDocsSortBy::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2108 }
2109 }
2110}
2111
2112#[derive(Debug, Clone, PartialEq, Eq)]
2113#[non_exhaustive] pub enum ListPaperDocsSortOrder {
2115 Ascending,
2117 Descending,
2119 Other,
2122}
2123
2124impl<'de> ::serde::de::Deserialize<'de> for ListPaperDocsSortOrder {
2125 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2126 use serde::de::{self, MapAccess, Visitor};
2128 struct EnumVisitor;
2129 impl<'de> Visitor<'de> for EnumVisitor {
2130 type Value = ListPaperDocsSortOrder;
2131 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2132 f.write_str("a ListPaperDocsSortOrder structure")
2133 }
2134 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2135 let tag: &str = match map.next_key()? {
2136 Some(".tag") => map.next_value()?,
2137 _ => return Err(de::Error::missing_field(".tag"))
2138 };
2139 let value = match tag {
2140 "ascending" => ListPaperDocsSortOrder::Ascending,
2141 "descending" => ListPaperDocsSortOrder::Descending,
2142 _ => ListPaperDocsSortOrder::Other,
2143 };
2144 crate::eat_json_fields(&mut map)?;
2145 Ok(value)
2146 }
2147 }
2148 const VARIANTS: &[&str] = &["ascending",
2149 "descending",
2150 "other"];
2151 deserializer.deserialize_struct("ListPaperDocsSortOrder", VARIANTS, EnumVisitor)
2152 }
2153}
2154
2155impl ::serde::ser::Serialize for ListPaperDocsSortOrder {
2156 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2157 use serde::ser::SerializeStruct;
2159 match self {
2160 ListPaperDocsSortOrder::Ascending => {
2161 let mut s = serializer.serialize_struct("ListPaperDocsSortOrder", 1)?;
2163 s.serialize_field(".tag", "ascending")?;
2164 s.end()
2165 }
2166 ListPaperDocsSortOrder::Descending => {
2167 let mut s = serializer.serialize_struct("ListPaperDocsSortOrder", 1)?;
2169 s.serialize_field(".tag", "descending")?;
2170 s.end()
2171 }
2172 ListPaperDocsSortOrder::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2173 }
2174 }
2175}
2176
2177#[derive(Debug, Clone, PartialEq, Eq)]
2178#[non_exhaustive] pub enum ListUsersCursorError {
2180 InsufficientPermissions,
2185 DocNotFound,
2187 CursorError(PaperApiCursorError),
2188 Other,
2191}
2192
2193impl<'de> ::serde::de::Deserialize<'de> for ListUsersCursorError {
2194 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2195 use serde::de::{self, MapAccess, Visitor};
2197 struct EnumVisitor;
2198 impl<'de> Visitor<'de> for EnumVisitor {
2199 type Value = ListUsersCursorError;
2200 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2201 f.write_str("a ListUsersCursorError structure")
2202 }
2203 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
2204 let tag: &str = match map.next_key()? {
2205 Some(".tag") => map.next_value()?,
2206 _ => return Err(de::Error::missing_field(".tag"))
2207 };
2208 let value = match tag {
2209 "insufficient_permissions" => ListUsersCursorError::InsufficientPermissions,
2210 "doc_not_found" => ListUsersCursorError::DocNotFound,
2211 "cursor_error" => {
2212 match map.next_key()? {
2213 Some("cursor_error") => ListUsersCursorError::CursorError(map.next_value()?),
2214 None => return Err(de::Error::missing_field("cursor_error")),
2215 _ => return Err(de::Error::unknown_field(tag, VARIANTS))
2216 }
2217 }
2218 _ => ListUsersCursorError::Other,
2219 };
2220 crate::eat_json_fields(&mut map)?;
2221 Ok(value)
2222 }
2223 }
2224 const VARIANTS: &[&str] = &["insufficient_permissions",
2225 "other",
2226 "doc_not_found",
2227 "cursor_error"];
2228 deserializer.deserialize_struct("ListUsersCursorError", VARIANTS, EnumVisitor)
2229 }
2230}
2231
2232impl ::serde::ser::Serialize for ListUsersCursorError {
2233 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2234 use serde::ser::SerializeStruct;
2236 match self {
2237 ListUsersCursorError::InsufficientPermissions => {
2238 let mut s = serializer.serialize_struct("ListUsersCursorError", 1)?;
2240 s.serialize_field(".tag", "insufficient_permissions")?;
2241 s.end()
2242 }
2243 ListUsersCursorError::DocNotFound => {
2244 let mut s = serializer.serialize_struct("ListUsersCursorError", 1)?;
2246 s.serialize_field(".tag", "doc_not_found")?;
2247 s.end()
2248 }
2249 ListUsersCursorError::CursorError(x) => {
2250 let mut s = serializer.serialize_struct("ListUsersCursorError", 2)?;
2252 s.serialize_field(".tag", "cursor_error")?;
2253 s.serialize_field("cursor_error", x)?;
2254 s.end()
2255 }
2256 ListUsersCursorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
2257 }
2258 }
2259}
2260
2261impl ::std::error::Error for ListUsersCursorError {
2262 fn source(&self) -> Option<&(dyn ::std::error::Error + 'static)> {
2263 match self {
2264 ListUsersCursorError::CursorError(inner) => Some(inner),
2265 _ => None,
2266 }
2267 }
2268}
2269
2270impl ::std::fmt::Display for ListUsersCursorError {
2271 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2272 match self {
2273 ListUsersCursorError::DocNotFound => f.write_str("The required doc was not found."),
2274 ListUsersCursorError::CursorError(inner) => write!(f, "ListUsersCursorError: {}", inner),
2275 _ => write!(f, "{:?}", *self),
2276 }
2277 }
2278}
2279
2280impl From<PaperApiBaseError> for ListUsersCursorError {
2282 fn from(parent: PaperApiBaseError) -> Self {
2283 match parent {
2284 PaperApiBaseError::InsufficientPermissions => ListUsersCursorError::InsufficientPermissions,
2285 PaperApiBaseError::Other => ListUsersCursorError::Other,
2286 }
2287 }
2288}
2289#[derive(Debug, Clone, PartialEq, Eq)]
2290#[non_exhaustive] pub struct ListUsersOnFolderArgs {
2292 pub doc_id: PaperDocId,
2294 pub limit: i32,
2297}
2298
2299impl ListUsersOnFolderArgs {
2300 pub fn new(doc_id: PaperDocId) -> Self {
2301 ListUsersOnFolderArgs {
2302 doc_id,
2303 limit: 1000,
2304 }
2305 }
2306
2307 pub fn with_limit(mut self, value: i32) -> Self {
2308 self.limit = value;
2309 self
2310 }
2311}
2312
2313const LIST_USERS_ON_FOLDER_ARGS_FIELDS: &[&str] = &["doc_id",
2314 "limit"];
2315impl ListUsersOnFolderArgs {
2316 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2317 map: V,
2318 ) -> Result<ListUsersOnFolderArgs, V::Error> {
2319 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2320 }
2321
2322 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2323 mut map: V,
2324 optional: bool,
2325 ) -> Result<Option<ListUsersOnFolderArgs>, V::Error> {
2326 let mut field_doc_id = None;
2327 let mut field_limit = None;
2328 let mut nothing = true;
2329 while let Some(key) = map.next_key::<&str>()? {
2330 nothing = false;
2331 match key {
2332 "doc_id" => {
2333 if field_doc_id.is_some() {
2334 return Err(::serde::de::Error::duplicate_field("doc_id"));
2335 }
2336 field_doc_id = Some(map.next_value()?);
2337 }
2338 "limit" => {
2339 if field_limit.is_some() {
2340 return Err(::serde::de::Error::duplicate_field("limit"));
2341 }
2342 field_limit = Some(map.next_value()?);
2343 }
2344 _ => {
2345 map.next_value::<::serde_json::Value>()?;
2347 }
2348 }
2349 }
2350 if optional && nothing {
2351 return Ok(None);
2352 }
2353 let result = ListUsersOnFolderArgs {
2354 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
2355 limit: field_limit.unwrap_or(1000),
2356 };
2357 Ok(Some(result))
2358 }
2359
2360 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2361 &self,
2362 s: &mut S::SerializeStruct,
2363 ) -> Result<(), S::Error> {
2364 use serde::ser::SerializeStruct;
2365 s.serialize_field("doc_id", &self.doc_id)?;
2366 if self.limit != 1000 {
2367 s.serialize_field("limit", &self.limit)?;
2368 }
2369 Ok(())
2370 }
2371}
2372
2373impl<'de> ::serde::de::Deserialize<'de> for ListUsersOnFolderArgs {
2374 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2375 use serde::de::{MapAccess, Visitor};
2377 struct StructVisitor;
2378 impl<'de> Visitor<'de> for StructVisitor {
2379 type Value = ListUsersOnFolderArgs;
2380 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2381 f.write_str("a ListUsersOnFolderArgs struct")
2382 }
2383 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2384 ListUsersOnFolderArgs::internal_deserialize(map)
2385 }
2386 }
2387 deserializer.deserialize_struct("ListUsersOnFolderArgs", LIST_USERS_ON_FOLDER_ARGS_FIELDS, StructVisitor)
2388 }
2389}
2390
2391impl ::serde::ser::Serialize for ListUsersOnFolderArgs {
2392 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2393 use serde::ser::SerializeStruct;
2395 let mut s = serializer.serialize_struct("ListUsersOnFolderArgs", 2)?;
2396 self.internal_serialize::<S>(&mut s)?;
2397 s.end()
2398 }
2399}
2400
2401impl From<ListUsersOnFolderArgs> for RefPaperDoc {
2403 fn from(subtype: ListUsersOnFolderArgs) -> Self {
2404 Self {
2405 doc_id: subtype.doc_id,
2406 }
2407 }
2408}
2409#[derive(Debug, Clone, PartialEq, Eq)]
2410#[non_exhaustive] pub struct ListUsersOnFolderContinueArgs {
2412 pub doc_id: PaperDocId,
2414 pub cursor: String,
2418}
2419
2420impl ListUsersOnFolderContinueArgs {
2421 pub fn new(doc_id: PaperDocId, cursor: String) -> Self {
2422 ListUsersOnFolderContinueArgs {
2423 doc_id,
2424 cursor,
2425 }
2426 }
2427}
2428
2429const LIST_USERS_ON_FOLDER_CONTINUE_ARGS_FIELDS: &[&str] = &["doc_id",
2430 "cursor"];
2431impl ListUsersOnFolderContinueArgs {
2432 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2433 map: V,
2434 ) -> Result<ListUsersOnFolderContinueArgs, V::Error> {
2435 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2436 }
2437
2438 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2439 mut map: V,
2440 optional: bool,
2441 ) -> Result<Option<ListUsersOnFolderContinueArgs>, V::Error> {
2442 let mut field_doc_id = None;
2443 let mut field_cursor = None;
2444 let mut nothing = true;
2445 while let Some(key) = map.next_key::<&str>()? {
2446 nothing = false;
2447 match key {
2448 "doc_id" => {
2449 if field_doc_id.is_some() {
2450 return Err(::serde::de::Error::duplicate_field("doc_id"));
2451 }
2452 field_doc_id = Some(map.next_value()?);
2453 }
2454 "cursor" => {
2455 if field_cursor.is_some() {
2456 return Err(::serde::de::Error::duplicate_field("cursor"));
2457 }
2458 field_cursor = Some(map.next_value()?);
2459 }
2460 _ => {
2461 map.next_value::<::serde_json::Value>()?;
2463 }
2464 }
2465 }
2466 if optional && nothing {
2467 return Ok(None);
2468 }
2469 let result = ListUsersOnFolderContinueArgs {
2470 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
2471 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
2472 };
2473 Ok(Some(result))
2474 }
2475
2476 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2477 &self,
2478 s: &mut S::SerializeStruct,
2479 ) -> Result<(), S::Error> {
2480 use serde::ser::SerializeStruct;
2481 s.serialize_field("doc_id", &self.doc_id)?;
2482 s.serialize_field("cursor", &self.cursor)?;
2483 Ok(())
2484 }
2485}
2486
2487impl<'de> ::serde::de::Deserialize<'de> for ListUsersOnFolderContinueArgs {
2488 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2489 use serde::de::{MapAccess, Visitor};
2491 struct StructVisitor;
2492 impl<'de> Visitor<'de> for StructVisitor {
2493 type Value = ListUsersOnFolderContinueArgs;
2494 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2495 f.write_str("a ListUsersOnFolderContinueArgs struct")
2496 }
2497 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2498 ListUsersOnFolderContinueArgs::internal_deserialize(map)
2499 }
2500 }
2501 deserializer.deserialize_struct("ListUsersOnFolderContinueArgs", LIST_USERS_ON_FOLDER_CONTINUE_ARGS_FIELDS, StructVisitor)
2502 }
2503}
2504
2505impl ::serde::ser::Serialize for ListUsersOnFolderContinueArgs {
2506 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2507 use serde::ser::SerializeStruct;
2509 let mut s = serializer.serialize_struct("ListUsersOnFolderContinueArgs", 2)?;
2510 self.internal_serialize::<S>(&mut s)?;
2511 s.end()
2512 }
2513}
2514
2515impl From<ListUsersOnFolderContinueArgs> for RefPaperDoc {
2517 fn from(subtype: ListUsersOnFolderContinueArgs) -> Self {
2518 Self {
2519 doc_id: subtype.doc_id,
2520 }
2521 }
2522}
2523#[derive(Debug, Clone, PartialEq, Eq)]
2524#[non_exhaustive] pub struct ListUsersOnFolderResponse {
2526 pub invitees: Vec<crate::types::sharing::InviteeInfo>,
2528 pub users: Vec<crate::types::sharing::UserInfo>,
2530 pub cursor: Cursor,
2535 pub has_more: bool,
2541}
2542
2543impl ListUsersOnFolderResponse {
2544 pub fn new(
2545 invitees: Vec<crate::types::sharing::InviteeInfo>,
2546 users: Vec<crate::types::sharing::UserInfo>,
2547 cursor: Cursor,
2548 has_more: bool,
2549 ) -> Self {
2550 ListUsersOnFolderResponse {
2551 invitees,
2552 users,
2553 cursor,
2554 has_more,
2555 }
2556 }
2557}
2558
2559const LIST_USERS_ON_FOLDER_RESPONSE_FIELDS: &[&str] = &["invitees",
2560 "users",
2561 "cursor",
2562 "has_more"];
2563impl ListUsersOnFolderResponse {
2564 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2565 map: V,
2566 ) -> Result<ListUsersOnFolderResponse, V::Error> {
2567 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2568 }
2569
2570 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2571 mut map: V,
2572 optional: bool,
2573 ) -> Result<Option<ListUsersOnFolderResponse>, V::Error> {
2574 let mut field_invitees = None;
2575 let mut field_users = None;
2576 let mut field_cursor = None;
2577 let mut field_has_more = None;
2578 let mut nothing = true;
2579 while let Some(key) = map.next_key::<&str>()? {
2580 nothing = false;
2581 match key {
2582 "invitees" => {
2583 if field_invitees.is_some() {
2584 return Err(::serde::de::Error::duplicate_field("invitees"));
2585 }
2586 field_invitees = Some(map.next_value()?);
2587 }
2588 "users" => {
2589 if field_users.is_some() {
2590 return Err(::serde::de::Error::duplicate_field("users"));
2591 }
2592 field_users = Some(map.next_value()?);
2593 }
2594 "cursor" => {
2595 if field_cursor.is_some() {
2596 return Err(::serde::de::Error::duplicate_field("cursor"));
2597 }
2598 field_cursor = Some(map.next_value()?);
2599 }
2600 "has_more" => {
2601 if field_has_more.is_some() {
2602 return Err(::serde::de::Error::duplicate_field("has_more"));
2603 }
2604 field_has_more = Some(map.next_value()?);
2605 }
2606 _ => {
2607 map.next_value::<::serde_json::Value>()?;
2609 }
2610 }
2611 }
2612 if optional && nothing {
2613 return Ok(None);
2614 }
2615 let result = ListUsersOnFolderResponse {
2616 invitees: field_invitees.ok_or_else(|| ::serde::de::Error::missing_field("invitees"))?,
2617 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
2618 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
2619 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
2620 };
2621 Ok(Some(result))
2622 }
2623
2624 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2625 &self,
2626 s: &mut S::SerializeStruct,
2627 ) -> Result<(), S::Error> {
2628 use serde::ser::SerializeStruct;
2629 s.serialize_field("invitees", &self.invitees)?;
2630 s.serialize_field("users", &self.users)?;
2631 s.serialize_field("cursor", &self.cursor)?;
2632 s.serialize_field("has_more", &self.has_more)?;
2633 Ok(())
2634 }
2635}
2636
2637impl<'de> ::serde::de::Deserialize<'de> for ListUsersOnFolderResponse {
2638 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2639 use serde::de::{MapAccess, Visitor};
2641 struct StructVisitor;
2642 impl<'de> Visitor<'de> for StructVisitor {
2643 type Value = ListUsersOnFolderResponse;
2644 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2645 f.write_str("a ListUsersOnFolderResponse struct")
2646 }
2647 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2648 ListUsersOnFolderResponse::internal_deserialize(map)
2649 }
2650 }
2651 deserializer.deserialize_struct("ListUsersOnFolderResponse", LIST_USERS_ON_FOLDER_RESPONSE_FIELDS, StructVisitor)
2652 }
2653}
2654
2655impl ::serde::ser::Serialize for ListUsersOnFolderResponse {
2656 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2657 use serde::ser::SerializeStruct;
2659 let mut s = serializer.serialize_struct("ListUsersOnFolderResponse", 4)?;
2660 self.internal_serialize::<S>(&mut s)?;
2661 s.end()
2662 }
2663}
2664
2665#[derive(Debug, Clone, PartialEq, Eq)]
2666#[non_exhaustive] pub struct ListUsersOnPaperDocArgs {
2668 pub doc_id: PaperDocId,
2670 pub limit: i32,
2673 pub filter_by: UserOnPaperDocFilter,
2675}
2676
2677impl ListUsersOnPaperDocArgs {
2678 pub fn new(doc_id: PaperDocId) -> Self {
2679 ListUsersOnPaperDocArgs {
2680 doc_id,
2681 limit: 1000,
2682 filter_by: UserOnPaperDocFilter::Shared,
2683 }
2684 }
2685
2686 pub fn with_limit(mut self, value: i32) -> Self {
2687 self.limit = value;
2688 self
2689 }
2690
2691 pub fn with_filter_by(mut self, value: UserOnPaperDocFilter) -> Self {
2692 self.filter_by = value;
2693 self
2694 }
2695}
2696
2697const LIST_USERS_ON_PAPER_DOC_ARGS_FIELDS: &[&str] = &["doc_id",
2698 "limit",
2699 "filter_by"];
2700impl ListUsersOnPaperDocArgs {
2701 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2702 map: V,
2703 ) -> Result<ListUsersOnPaperDocArgs, V::Error> {
2704 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2705 }
2706
2707 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2708 mut map: V,
2709 optional: bool,
2710 ) -> Result<Option<ListUsersOnPaperDocArgs>, V::Error> {
2711 let mut field_doc_id = None;
2712 let mut field_limit = None;
2713 let mut field_filter_by = None;
2714 let mut nothing = true;
2715 while let Some(key) = map.next_key::<&str>()? {
2716 nothing = false;
2717 match key {
2718 "doc_id" => {
2719 if field_doc_id.is_some() {
2720 return Err(::serde::de::Error::duplicate_field("doc_id"));
2721 }
2722 field_doc_id = Some(map.next_value()?);
2723 }
2724 "limit" => {
2725 if field_limit.is_some() {
2726 return Err(::serde::de::Error::duplicate_field("limit"));
2727 }
2728 field_limit = Some(map.next_value()?);
2729 }
2730 "filter_by" => {
2731 if field_filter_by.is_some() {
2732 return Err(::serde::de::Error::duplicate_field("filter_by"));
2733 }
2734 field_filter_by = Some(map.next_value()?);
2735 }
2736 _ => {
2737 map.next_value::<::serde_json::Value>()?;
2739 }
2740 }
2741 }
2742 if optional && nothing {
2743 return Ok(None);
2744 }
2745 let result = ListUsersOnPaperDocArgs {
2746 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
2747 limit: field_limit.unwrap_or(1000),
2748 filter_by: field_filter_by.unwrap_or(UserOnPaperDocFilter::Shared),
2749 };
2750 Ok(Some(result))
2751 }
2752
2753 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2754 &self,
2755 s: &mut S::SerializeStruct,
2756 ) -> Result<(), S::Error> {
2757 use serde::ser::SerializeStruct;
2758 s.serialize_field("doc_id", &self.doc_id)?;
2759 if self.limit != 1000 {
2760 s.serialize_field("limit", &self.limit)?;
2761 }
2762 if self.filter_by != UserOnPaperDocFilter::Shared {
2763 s.serialize_field("filter_by", &self.filter_by)?;
2764 }
2765 Ok(())
2766 }
2767}
2768
2769impl<'de> ::serde::de::Deserialize<'de> for ListUsersOnPaperDocArgs {
2770 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2771 use serde::de::{MapAccess, Visitor};
2773 struct StructVisitor;
2774 impl<'de> Visitor<'de> for StructVisitor {
2775 type Value = ListUsersOnPaperDocArgs;
2776 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2777 f.write_str("a ListUsersOnPaperDocArgs struct")
2778 }
2779 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2780 ListUsersOnPaperDocArgs::internal_deserialize(map)
2781 }
2782 }
2783 deserializer.deserialize_struct("ListUsersOnPaperDocArgs", LIST_USERS_ON_PAPER_DOC_ARGS_FIELDS, StructVisitor)
2784 }
2785}
2786
2787impl ::serde::ser::Serialize for ListUsersOnPaperDocArgs {
2788 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2789 use serde::ser::SerializeStruct;
2791 let mut s = serializer.serialize_struct("ListUsersOnPaperDocArgs", 3)?;
2792 self.internal_serialize::<S>(&mut s)?;
2793 s.end()
2794 }
2795}
2796
2797impl From<ListUsersOnPaperDocArgs> for RefPaperDoc {
2799 fn from(subtype: ListUsersOnPaperDocArgs) -> Self {
2800 Self {
2801 doc_id: subtype.doc_id,
2802 }
2803 }
2804}
2805#[derive(Debug, Clone, PartialEq, Eq)]
2806#[non_exhaustive] pub struct ListUsersOnPaperDocContinueArgs {
2808 pub doc_id: PaperDocId,
2810 pub cursor: String,
2814}
2815
2816impl ListUsersOnPaperDocContinueArgs {
2817 pub fn new(doc_id: PaperDocId, cursor: String) -> Self {
2818 ListUsersOnPaperDocContinueArgs {
2819 doc_id,
2820 cursor,
2821 }
2822 }
2823}
2824
2825const LIST_USERS_ON_PAPER_DOC_CONTINUE_ARGS_FIELDS: &[&str] = &["doc_id",
2826 "cursor"];
2827impl ListUsersOnPaperDocContinueArgs {
2828 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2829 map: V,
2830 ) -> Result<ListUsersOnPaperDocContinueArgs, V::Error> {
2831 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2832 }
2833
2834 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2835 mut map: V,
2836 optional: bool,
2837 ) -> Result<Option<ListUsersOnPaperDocContinueArgs>, V::Error> {
2838 let mut field_doc_id = None;
2839 let mut field_cursor = None;
2840 let mut nothing = true;
2841 while let Some(key) = map.next_key::<&str>()? {
2842 nothing = false;
2843 match key {
2844 "doc_id" => {
2845 if field_doc_id.is_some() {
2846 return Err(::serde::de::Error::duplicate_field("doc_id"));
2847 }
2848 field_doc_id = Some(map.next_value()?);
2849 }
2850 "cursor" => {
2851 if field_cursor.is_some() {
2852 return Err(::serde::de::Error::duplicate_field("cursor"));
2853 }
2854 field_cursor = Some(map.next_value()?);
2855 }
2856 _ => {
2857 map.next_value::<::serde_json::Value>()?;
2859 }
2860 }
2861 }
2862 if optional && nothing {
2863 return Ok(None);
2864 }
2865 let result = ListUsersOnPaperDocContinueArgs {
2866 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
2867 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
2868 };
2869 Ok(Some(result))
2870 }
2871
2872 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
2873 &self,
2874 s: &mut S::SerializeStruct,
2875 ) -> Result<(), S::Error> {
2876 use serde::ser::SerializeStruct;
2877 s.serialize_field("doc_id", &self.doc_id)?;
2878 s.serialize_field("cursor", &self.cursor)?;
2879 Ok(())
2880 }
2881}
2882
2883impl<'de> ::serde::de::Deserialize<'de> for ListUsersOnPaperDocContinueArgs {
2884 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2885 use serde::de::{MapAccess, Visitor};
2887 struct StructVisitor;
2888 impl<'de> Visitor<'de> for StructVisitor {
2889 type Value = ListUsersOnPaperDocContinueArgs;
2890 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2891 f.write_str("a ListUsersOnPaperDocContinueArgs struct")
2892 }
2893 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
2894 ListUsersOnPaperDocContinueArgs::internal_deserialize(map)
2895 }
2896 }
2897 deserializer.deserialize_struct("ListUsersOnPaperDocContinueArgs", LIST_USERS_ON_PAPER_DOC_CONTINUE_ARGS_FIELDS, StructVisitor)
2898 }
2899}
2900
2901impl ::serde::ser::Serialize for ListUsersOnPaperDocContinueArgs {
2902 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2903 use serde::ser::SerializeStruct;
2905 let mut s = serializer.serialize_struct("ListUsersOnPaperDocContinueArgs", 2)?;
2906 self.internal_serialize::<S>(&mut s)?;
2907 s.end()
2908 }
2909}
2910
2911impl From<ListUsersOnPaperDocContinueArgs> for RefPaperDoc {
2913 fn from(subtype: ListUsersOnPaperDocContinueArgs) -> Self {
2914 Self {
2915 doc_id: subtype.doc_id,
2916 }
2917 }
2918}
2919#[derive(Debug, Clone, PartialEq, Eq)]
2920#[non_exhaustive] pub struct ListUsersOnPaperDocResponse {
2922 pub invitees: Vec<InviteeInfoWithPermissionLevel>,
2925 pub users: Vec<UserInfoWithPermissionLevel>,
2927 pub doc_owner: crate::types::sharing::UserInfo,
2929 pub cursor: Cursor,
2933 pub has_more: bool,
2938}
2939
2940impl ListUsersOnPaperDocResponse {
2941 pub fn new(
2942 invitees: Vec<InviteeInfoWithPermissionLevel>,
2943 users: Vec<UserInfoWithPermissionLevel>,
2944 doc_owner: crate::types::sharing::UserInfo,
2945 cursor: Cursor,
2946 has_more: bool,
2947 ) -> Self {
2948 ListUsersOnPaperDocResponse {
2949 invitees,
2950 users,
2951 doc_owner,
2952 cursor,
2953 has_more,
2954 }
2955 }
2956}
2957
2958const LIST_USERS_ON_PAPER_DOC_RESPONSE_FIELDS: &[&str] = &["invitees",
2959 "users",
2960 "doc_owner",
2961 "cursor",
2962 "has_more"];
2963impl ListUsersOnPaperDocResponse {
2964 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
2965 map: V,
2966 ) -> Result<ListUsersOnPaperDocResponse, V::Error> {
2967 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
2968 }
2969
2970 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
2971 mut map: V,
2972 optional: bool,
2973 ) -> Result<Option<ListUsersOnPaperDocResponse>, V::Error> {
2974 let mut field_invitees = None;
2975 let mut field_users = None;
2976 let mut field_doc_owner = None;
2977 let mut field_cursor = None;
2978 let mut field_has_more = None;
2979 let mut nothing = true;
2980 while let Some(key) = map.next_key::<&str>()? {
2981 nothing = false;
2982 match key {
2983 "invitees" => {
2984 if field_invitees.is_some() {
2985 return Err(::serde::de::Error::duplicate_field("invitees"));
2986 }
2987 field_invitees = Some(map.next_value()?);
2988 }
2989 "users" => {
2990 if field_users.is_some() {
2991 return Err(::serde::de::Error::duplicate_field("users"));
2992 }
2993 field_users = Some(map.next_value()?);
2994 }
2995 "doc_owner" => {
2996 if field_doc_owner.is_some() {
2997 return Err(::serde::de::Error::duplicate_field("doc_owner"));
2998 }
2999 field_doc_owner = Some(map.next_value()?);
3000 }
3001 "cursor" => {
3002 if field_cursor.is_some() {
3003 return Err(::serde::de::Error::duplicate_field("cursor"));
3004 }
3005 field_cursor = Some(map.next_value()?);
3006 }
3007 "has_more" => {
3008 if field_has_more.is_some() {
3009 return Err(::serde::de::Error::duplicate_field("has_more"));
3010 }
3011 field_has_more = Some(map.next_value()?);
3012 }
3013 _ => {
3014 map.next_value::<::serde_json::Value>()?;
3016 }
3017 }
3018 }
3019 if optional && nothing {
3020 return Ok(None);
3021 }
3022 let result = ListUsersOnPaperDocResponse {
3023 invitees: field_invitees.ok_or_else(|| ::serde::de::Error::missing_field("invitees"))?,
3024 users: field_users.ok_or_else(|| ::serde::de::Error::missing_field("users"))?,
3025 doc_owner: field_doc_owner.ok_or_else(|| ::serde::de::Error::missing_field("doc_owner"))?,
3026 cursor: field_cursor.ok_or_else(|| ::serde::de::Error::missing_field("cursor"))?,
3027 has_more: field_has_more.ok_or_else(|| ::serde::de::Error::missing_field("has_more"))?,
3028 };
3029 Ok(Some(result))
3030 }
3031
3032 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3033 &self,
3034 s: &mut S::SerializeStruct,
3035 ) -> Result<(), S::Error> {
3036 use serde::ser::SerializeStruct;
3037 s.serialize_field("invitees", &self.invitees)?;
3038 s.serialize_field("users", &self.users)?;
3039 s.serialize_field("doc_owner", &self.doc_owner)?;
3040 s.serialize_field("cursor", &self.cursor)?;
3041 s.serialize_field("has_more", &self.has_more)?;
3042 Ok(())
3043 }
3044}
3045
3046impl<'de> ::serde::de::Deserialize<'de> for ListUsersOnPaperDocResponse {
3047 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3048 use serde::de::{MapAccess, Visitor};
3050 struct StructVisitor;
3051 impl<'de> Visitor<'de> for StructVisitor {
3052 type Value = ListUsersOnPaperDocResponse;
3053 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3054 f.write_str("a ListUsersOnPaperDocResponse struct")
3055 }
3056 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3057 ListUsersOnPaperDocResponse::internal_deserialize(map)
3058 }
3059 }
3060 deserializer.deserialize_struct("ListUsersOnPaperDocResponse", LIST_USERS_ON_PAPER_DOC_RESPONSE_FIELDS, StructVisitor)
3061 }
3062}
3063
3064impl ::serde::ser::Serialize for ListUsersOnPaperDocResponse {
3065 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3066 use serde::ser::SerializeStruct;
3068 let mut s = serializer.serialize_struct("ListUsersOnPaperDocResponse", 5)?;
3069 self.internal_serialize::<S>(&mut s)?;
3070 s.end()
3071 }
3072}
3073
3074#[derive(Debug, Clone, PartialEq, Eq)]
3075#[non_exhaustive] pub enum PaperApiBaseError {
3077 InsufficientPermissions,
3082 Other,
3085}
3086
3087impl<'de> ::serde::de::Deserialize<'de> for PaperApiBaseError {
3088 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3089 use serde::de::{self, MapAccess, Visitor};
3091 struct EnumVisitor;
3092 impl<'de> Visitor<'de> for EnumVisitor {
3093 type Value = PaperApiBaseError;
3094 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3095 f.write_str("a PaperApiBaseError structure")
3096 }
3097 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3098 let tag: &str = match map.next_key()? {
3099 Some(".tag") => map.next_value()?,
3100 _ => return Err(de::Error::missing_field(".tag"))
3101 };
3102 let value = match tag {
3103 "insufficient_permissions" => PaperApiBaseError::InsufficientPermissions,
3104 _ => PaperApiBaseError::Other,
3105 };
3106 crate::eat_json_fields(&mut map)?;
3107 Ok(value)
3108 }
3109 }
3110 const VARIANTS: &[&str] = &["insufficient_permissions",
3111 "other"];
3112 deserializer.deserialize_struct("PaperApiBaseError", VARIANTS, EnumVisitor)
3113 }
3114}
3115
3116impl ::serde::ser::Serialize for PaperApiBaseError {
3117 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3118 use serde::ser::SerializeStruct;
3120 match self {
3121 PaperApiBaseError::InsufficientPermissions => {
3122 let mut s = serializer.serialize_struct("PaperApiBaseError", 1)?;
3124 s.serialize_field(".tag", "insufficient_permissions")?;
3125 s.end()
3126 }
3127 PaperApiBaseError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3128 }
3129 }
3130}
3131
3132impl ::std::error::Error for PaperApiBaseError {
3133}
3134
3135impl ::std::fmt::Display for PaperApiBaseError {
3136 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3137 write!(f, "{:?}", *self)
3138 }
3139}
3140
3141#[derive(Debug, Clone, PartialEq, Eq)]
3142#[non_exhaustive] pub enum PaperApiCursorError {
3144 ExpiredCursor,
3146 InvalidCursor,
3148 WrongUserInCursor,
3150 Reset,
3153 Other,
3156}
3157
3158impl<'de> ::serde::de::Deserialize<'de> for PaperApiCursorError {
3159 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3160 use serde::de::{self, MapAccess, Visitor};
3162 struct EnumVisitor;
3163 impl<'de> Visitor<'de> for EnumVisitor {
3164 type Value = PaperApiCursorError;
3165 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3166 f.write_str("a PaperApiCursorError structure")
3167 }
3168 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3169 let tag: &str = match map.next_key()? {
3170 Some(".tag") => map.next_value()?,
3171 _ => return Err(de::Error::missing_field(".tag"))
3172 };
3173 let value = match tag {
3174 "expired_cursor" => PaperApiCursorError::ExpiredCursor,
3175 "invalid_cursor" => PaperApiCursorError::InvalidCursor,
3176 "wrong_user_in_cursor" => PaperApiCursorError::WrongUserInCursor,
3177 "reset" => PaperApiCursorError::Reset,
3178 _ => PaperApiCursorError::Other,
3179 };
3180 crate::eat_json_fields(&mut map)?;
3181 Ok(value)
3182 }
3183 }
3184 const VARIANTS: &[&str] = &["expired_cursor",
3185 "invalid_cursor",
3186 "wrong_user_in_cursor",
3187 "reset",
3188 "other"];
3189 deserializer.deserialize_struct("PaperApiCursorError", VARIANTS, EnumVisitor)
3190 }
3191}
3192
3193impl ::serde::ser::Serialize for PaperApiCursorError {
3194 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3195 use serde::ser::SerializeStruct;
3197 match self {
3198 PaperApiCursorError::ExpiredCursor => {
3199 let mut s = serializer.serialize_struct("PaperApiCursorError", 1)?;
3201 s.serialize_field(".tag", "expired_cursor")?;
3202 s.end()
3203 }
3204 PaperApiCursorError::InvalidCursor => {
3205 let mut s = serializer.serialize_struct("PaperApiCursorError", 1)?;
3207 s.serialize_field(".tag", "invalid_cursor")?;
3208 s.end()
3209 }
3210 PaperApiCursorError::WrongUserInCursor => {
3211 let mut s = serializer.serialize_struct("PaperApiCursorError", 1)?;
3213 s.serialize_field(".tag", "wrong_user_in_cursor")?;
3214 s.end()
3215 }
3216 PaperApiCursorError::Reset => {
3217 let mut s = serializer.serialize_struct("PaperApiCursorError", 1)?;
3219 s.serialize_field(".tag", "reset")?;
3220 s.end()
3221 }
3222 PaperApiCursorError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3223 }
3224 }
3225}
3226
3227impl ::std::error::Error for PaperApiCursorError {
3228}
3229
3230impl ::std::fmt::Display for PaperApiCursorError {
3231 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3232 match self {
3233 PaperApiCursorError::ExpiredCursor => f.write_str("The provided cursor is expired."),
3234 PaperApiCursorError::InvalidCursor => f.write_str("The provided cursor is invalid."),
3235 PaperApiCursorError::WrongUserInCursor => f.write_str("The provided cursor contains invalid user."),
3236 PaperApiCursorError::Reset => f.write_str("Indicates that the cursor has been invalidated. Call the corresponding non-continue endpoint to obtain a new cursor."),
3237 _ => write!(f, "{:?}", *self),
3238 }
3239 }
3240}
3241
3242#[derive(Debug, Clone, PartialEq, Eq)]
3243#[non_exhaustive] pub struct PaperDocCreateArgs {
3245 pub import_format: ImportFormat,
3247 pub parent_folder_id: Option<String>,
3250}
3251
3252impl PaperDocCreateArgs {
3253 pub fn new(import_format: ImportFormat) -> Self {
3254 PaperDocCreateArgs {
3255 import_format,
3256 parent_folder_id: None,
3257 }
3258 }
3259
3260 pub fn with_parent_folder_id(mut self, value: String) -> Self {
3261 self.parent_folder_id = Some(value);
3262 self
3263 }
3264}
3265
3266const PAPER_DOC_CREATE_ARGS_FIELDS: &[&str] = &["import_format",
3267 "parent_folder_id"];
3268impl PaperDocCreateArgs {
3269 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3270 map: V,
3271 ) -> Result<PaperDocCreateArgs, V::Error> {
3272 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3273 }
3274
3275 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3276 mut map: V,
3277 optional: bool,
3278 ) -> Result<Option<PaperDocCreateArgs>, V::Error> {
3279 let mut field_import_format = None;
3280 let mut field_parent_folder_id = None;
3281 let mut nothing = true;
3282 while let Some(key) = map.next_key::<&str>()? {
3283 nothing = false;
3284 match key {
3285 "import_format" => {
3286 if field_import_format.is_some() {
3287 return Err(::serde::de::Error::duplicate_field("import_format"));
3288 }
3289 field_import_format = Some(map.next_value()?);
3290 }
3291 "parent_folder_id" => {
3292 if field_parent_folder_id.is_some() {
3293 return Err(::serde::de::Error::duplicate_field("parent_folder_id"));
3294 }
3295 field_parent_folder_id = Some(map.next_value()?);
3296 }
3297 _ => {
3298 map.next_value::<::serde_json::Value>()?;
3300 }
3301 }
3302 }
3303 if optional && nothing {
3304 return Ok(None);
3305 }
3306 let result = PaperDocCreateArgs {
3307 import_format: field_import_format.ok_or_else(|| ::serde::de::Error::missing_field("import_format"))?,
3308 parent_folder_id: field_parent_folder_id.and_then(Option::flatten),
3309 };
3310 Ok(Some(result))
3311 }
3312
3313 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3314 &self,
3315 s: &mut S::SerializeStruct,
3316 ) -> Result<(), S::Error> {
3317 use serde::ser::SerializeStruct;
3318 s.serialize_field("import_format", &self.import_format)?;
3319 if let Some(val) = &self.parent_folder_id {
3320 s.serialize_field("parent_folder_id", val)?;
3321 }
3322 Ok(())
3323 }
3324}
3325
3326impl<'de> ::serde::de::Deserialize<'de> for PaperDocCreateArgs {
3327 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3328 use serde::de::{MapAccess, Visitor};
3330 struct StructVisitor;
3331 impl<'de> Visitor<'de> for StructVisitor {
3332 type Value = PaperDocCreateArgs;
3333 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3334 f.write_str("a PaperDocCreateArgs struct")
3335 }
3336 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3337 PaperDocCreateArgs::internal_deserialize(map)
3338 }
3339 }
3340 deserializer.deserialize_struct("PaperDocCreateArgs", PAPER_DOC_CREATE_ARGS_FIELDS, StructVisitor)
3341 }
3342}
3343
3344impl ::serde::ser::Serialize for PaperDocCreateArgs {
3345 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3346 use serde::ser::SerializeStruct;
3348 let mut s = serializer.serialize_struct("PaperDocCreateArgs", 2)?;
3349 self.internal_serialize::<S>(&mut s)?;
3350 s.end()
3351 }
3352}
3353
3354#[derive(Debug, Clone, PartialEq, Eq)]
3355#[non_exhaustive] pub enum PaperDocCreateError {
3357 InsufficientPermissions,
3362 ContentMalformed,
3364 FolderNotFound,
3366 DocLengthExceeded,
3368 ImageSizeExceeded,
3371 Other,
3374}
3375
3376impl<'de> ::serde::de::Deserialize<'de> for PaperDocCreateError {
3377 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3378 use serde::de::{self, MapAccess, Visitor};
3380 struct EnumVisitor;
3381 impl<'de> Visitor<'de> for EnumVisitor {
3382 type Value = PaperDocCreateError;
3383 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3384 f.write_str("a PaperDocCreateError structure")
3385 }
3386 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
3387 let tag: &str = match map.next_key()? {
3388 Some(".tag") => map.next_value()?,
3389 _ => return Err(de::Error::missing_field(".tag"))
3390 };
3391 let value = match tag {
3392 "insufficient_permissions" => PaperDocCreateError::InsufficientPermissions,
3393 "content_malformed" => PaperDocCreateError::ContentMalformed,
3394 "folder_not_found" => PaperDocCreateError::FolderNotFound,
3395 "doc_length_exceeded" => PaperDocCreateError::DocLengthExceeded,
3396 "image_size_exceeded" => PaperDocCreateError::ImageSizeExceeded,
3397 _ => PaperDocCreateError::Other,
3398 };
3399 crate::eat_json_fields(&mut map)?;
3400 Ok(value)
3401 }
3402 }
3403 const VARIANTS: &[&str] = &["insufficient_permissions",
3404 "other",
3405 "content_malformed",
3406 "folder_not_found",
3407 "doc_length_exceeded",
3408 "image_size_exceeded"];
3409 deserializer.deserialize_struct("PaperDocCreateError", VARIANTS, EnumVisitor)
3410 }
3411}
3412
3413impl ::serde::ser::Serialize for PaperDocCreateError {
3414 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3415 use serde::ser::SerializeStruct;
3417 match self {
3418 PaperDocCreateError::InsufficientPermissions => {
3419 let mut s = serializer.serialize_struct("PaperDocCreateError", 1)?;
3421 s.serialize_field(".tag", "insufficient_permissions")?;
3422 s.end()
3423 }
3424 PaperDocCreateError::ContentMalformed => {
3425 let mut s = serializer.serialize_struct("PaperDocCreateError", 1)?;
3427 s.serialize_field(".tag", "content_malformed")?;
3428 s.end()
3429 }
3430 PaperDocCreateError::FolderNotFound => {
3431 let mut s = serializer.serialize_struct("PaperDocCreateError", 1)?;
3433 s.serialize_field(".tag", "folder_not_found")?;
3434 s.end()
3435 }
3436 PaperDocCreateError::DocLengthExceeded => {
3437 let mut s = serializer.serialize_struct("PaperDocCreateError", 1)?;
3439 s.serialize_field(".tag", "doc_length_exceeded")?;
3440 s.end()
3441 }
3442 PaperDocCreateError::ImageSizeExceeded => {
3443 let mut s = serializer.serialize_struct("PaperDocCreateError", 1)?;
3445 s.serialize_field(".tag", "image_size_exceeded")?;
3446 s.end()
3447 }
3448 PaperDocCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
3449 }
3450 }
3451}
3452
3453impl ::std::error::Error for PaperDocCreateError {
3454}
3455
3456impl ::std::fmt::Display for PaperDocCreateError {
3457 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3458 match self {
3459 PaperDocCreateError::ContentMalformed => f.write_str("The provided content was malformed and cannot be imported to Paper."),
3460 PaperDocCreateError::FolderNotFound => f.write_str("The specified Paper folder is cannot be found."),
3461 PaperDocCreateError::DocLengthExceeded => f.write_str("The newly created Paper doc would be too large. Please split the content into multiple docs."),
3462 PaperDocCreateError::ImageSizeExceeded => f.write_str("The imported document contains an image that is too large. The current limit is 1MB. This only applies to HTML with data URI."),
3463 _ => write!(f, "{:?}", *self),
3464 }
3465 }
3466}
3467
3468impl From<PaperApiBaseError> for PaperDocCreateError {
3470 fn from(parent: PaperApiBaseError) -> Self {
3471 match parent {
3472 PaperApiBaseError::InsufficientPermissions => PaperDocCreateError::InsufficientPermissions,
3473 PaperApiBaseError::Other => PaperDocCreateError::Other,
3474 }
3475 }
3476}
3477#[derive(Debug, Clone, PartialEq, Eq)]
3478#[non_exhaustive] pub struct PaperDocCreateUpdateResult {
3480 pub doc_id: String,
3482 pub revision: i64,
3484 pub title: String,
3486}
3487
3488impl PaperDocCreateUpdateResult {
3489 pub fn new(doc_id: String, revision: i64, title: String) -> Self {
3490 PaperDocCreateUpdateResult {
3491 doc_id,
3492 revision,
3493 title,
3494 }
3495 }
3496}
3497
3498const PAPER_DOC_CREATE_UPDATE_RESULT_FIELDS: &[&str] = &["doc_id",
3499 "revision",
3500 "title"];
3501impl PaperDocCreateUpdateResult {
3502 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3503 map: V,
3504 ) -> Result<PaperDocCreateUpdateResult, V::Error> {
3505 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3506 }
3507
3508 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3509 mut map: V,
3510 optional: bool,
3511 ) -> Result<Option<PaperDocCreateUpdateResult>, V::Error> {
3512 let mut field_doc_id = None;
3513 let mut field_revision = None;
3514 let mut field_title = None;
3515 let mut nothing = true;
3516 while let Some(key) = map.next_key::<&str>()? {
3517 nothing = false;
3518 match key {
3519 "doc_id" => {
3520 if field_doc_id.is_some() {
3521 return Err(::serde::de::Error::duplicate_field("doc_id"));
3522 }
3523 field_doc_id = Some(map.next_value()?);
3524 }
3525 "revision" => {
3526 if field_revision.is_some() {
3527 return Err(::serde::de::Error::duplicate_field("revision"));
3528 }
3529 field_revision = Some(map.next_value()?);
3530 }
3531 "title" => {
3532 if field_title.is_some() {
3533 return Err(::serde::de::Error::duplicate_field("title"));
3534 }
3535 field_title = Some(map.next_value()?);
3536 }
3537 _ => {
3538 map.next_value::<::serde_json::Value>()?;
3540 }
3541 }
3542 }
3543 if optional && nothing {
3544 return Ok(None);
3545 }
3546 let result = PaperDocCreateUpdateResult {
3547 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
3548 revision: field_revision.ok_or_else(|| ::serde::de::Error::missing_field("revision"))?,
3549 title: field_title.ok_or_else(|| ::serde::de::Error::missing_field("title"))?,
3550 };
3551 Ok(Some(result))
3552 }
3553
3554 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3555 &self,
3556 s: &mut S::SerializeStruct,
3557 ) -> Result<(), S::Error> {
3558 use serde::ser::SerializeStruct;
3559 s.serialize_field("doc_id", &self.doc_id)?;
3560 s.serialize_field("revision", &self.revision)?;
3561 s.serialize_field("title", &self.title)?;
3562 Ok(())
3563 }
3564}
3565
3566impl<'de> ::serde::de::Deserialize<'de> for PaperDocCreateUpdateResult {
3567 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3568 use serde::de::{MapAccess, Visitor};
3570 struct StructVisitor;
3571 impl<'de> Visitor<'de> for StructVisitor {
3572 type Value = PaperDocCreateUpdateResult;
3573 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3574 f.write_str("a PaperDocCreateUpdateResult struct")
3575 }
3576 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3577 PaperDocCreateUpdateResult::internal_deserialize(map)
3578 }
3579 }
3580 deserializer.deserialize_struct("PaperDocCreateUpdateResult", PAPER_DOC_CREATE_UPDATE_RESULT_FIELDS, StructVisitor)
3581 }
3582}
3583
3584impl ::serde::ser::Serialize for PaperDocCreateUpdateResult {
3585 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3586 use serde::ser::SerializeStruct;
3588 let mut s = serializer.serialize_struct("PaperDocCreateUpdateResult", 3)?;
3589 self.internal_serialize::<S>(&mut s)?;
3590 s.end()
3591 }
3592}
3593
3594#[derive(Debug, Clone, PartialEq, Eq)]
3595#[non_exhaustive] pub struct PaperDocExport {
3597 pub doc_id: PaperDocId,
3599 pub export_format: ExportFormat,
3600 pub include_comments: bool,
3604}
3605
3606impl PaperDocExport {
3607 pub fn new(doc_id: PaperDocId, export_format: ExportFormat) -> Self {
3608 PaperDocExport {
3609 doc_id,
3610 export_format,
3611 include_comments: false,
3612 }
3613 }
3614
3615 pub fn with_include_comments(mut self, value: bool) -> Self {
3616 self.include_comments = value;
3617 self
3618 }
3619}
3620
3621const PAPER_DOC_EXPORT_FIELDS: &[&str] = &["doc_id",
3622 "export_format",
3623 "include_comments"];
3624impl PaperDocExport {
3625 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3626 map: V,
3627 ) -> Result<PaperDocExport, V::Error> {
3628 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3629 }
3630
3631 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3632 mut map: V,
3633 optional: bool,
3634 ) -> Result<Option<PaperDocExport>, V::Error> {
3635 let mut field_doc_id = None;
3636 let mut field_export_format = None;
3637 let mut field_include_comments = None;
3638 let mut nothing = true;
3639 while let Some(key) = map.next_key::<&str>()? {
3640 nothing = false;
3641 match key {
3642 "doc_id" => {
3643 if field_doc_id.is_some() {
3644 return Err(::serde::de::Error::duplicate_field("doc_id"));
3645 }
3646 field_doc_id = Some(map.next_value()?);
3647 }
3648 "export_format" => {
3649 if field_export_format.is_some() {
3650 return Err(::serde::de::Error::duplicate_field("export_format"));
3651 }
3652 field_export_format = Some(map.next_value()?);
3653 }
3654 "include_comments" => {
3655 if field_include_comments.is_some() {
3656 return Err(::serde::de::Error::duplicate_field("include_comments"));
3657 }
3658 field_include_comments = Some(map.next_value()?);
3659 }
3660 _ => {
3661 map.next_value::<::serde_json::Value>()?;
3663 }
3664 }
3665 }
3666 if optional && nothing {
3667 return Ok(None);
3668 }
3669 let result = PaperDocExport {
3670 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
3671 export_format: field_export_format.ok_or_else(|| ::serde::de::Error::missing_field("export_format"))?,
3672 include_comments: field_include_comments.unwrap_or(false),
3673 };
3674 Ok(Some(result))
3675 }
3676
3677 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3678 &self,
3679 s: &mut S::SerializeStruct,
3680 ) -> Result<(), S::Error> {
3681 use serde::ser::SerializeStruct;
3682 s.serialize_field("doc_id", &self.doc_id)?;
3683 s.serialize_field("export_format", &self.export_format)?;
3684 if self.include_comments {
3685 s.serialize_field("include_comments", &self.include_comments)?;
3686 }
3687 Ok(())
3688 }
3689}
3690
3691impl<'de> ::serde::de::Deserialize<'de> for PaperDocExport {
3692 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3693 use serde::de::{MapAccess, Visitor};
3695 struct StructVisitor;
3696 impl<'de> Visitor<'de> for StructVisitor {
3697 type Value = PaperDocExport;
3698 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3699 f.write_str("a PaperDocExport struct")
3700 }
3701 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3702 PaperDocExport::internal_deserialize(map)
3703 }
3704 }
3705 deserializer.deserialize_struct("PaperDocExport", PAPER_DOC_EXPORT_FIELDS, StructVisitor)
3706 }
3707}
3708
3709impl ::serde::ser::Serialize for PaperDocExport {
3710 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3711 use serde::ser::SerializeStruct;
3713 let mut s = serializer.serialize_struct("PaperDocExport", 3)?;
3714 self.internal_serialize::<S>(&mut s)?;
3715 s.end()
3716 }
3717}
3718
3719impl From<PaperDocExport> for RefPaperDoc {
3721 fn from(subtype: PaperDocExport) -> Self {
3722 Self {
3723 doc_id: subtype.doc_id,
3724 }
3725 }
3726}
3727#[derive(Debug, Clone, PartialEq, Eq)]
3728#[non_exhaustive] pub struct PaperDocExportResult {
3730 pub owner: String,
3732 pub title: String,
3734 pub revision: i64,
3736 pub mime_type: String,
3738}
3739
3740impl PaperDocExportResult {
3741 pub fn new(owner: String, title: String, revision: i64, mime_type: String) -> Self {
3742 PaperDocExportResult {
3743 owner,
3744 title,
3745 revision,
3746 mime_type,
3747 }
3748 }
3749}
3750
3751const PAPER_DOC_EXPORT_RESULT_FIELDS: &[&str] = &["owner",
3752 "title",
3753 "revision",
3754 "mime_type"];
3755impl PaperDocExportResult {
3756 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3757 map: V,
3758 ) -> Result<PaperDocExportResult, V::Error> {
3759 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3760 }
3761
3762 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3763 mut map: V,
3764 optional: bool,
3765 ) -> Result<Option<PaperDocExportResult>, V::Error> {
3766 let mut field_owner = None;
3767 let mut field_title = None;
3768 let mut field_revision = None;
3769 let mut field_mime_type = None;
3770 let mut nothing = true;
3771 while let Some(key) = map.next_key::<&str>()? {
3772 nothing = false;
3773 match key {
3774 "owner" => {
3775 if field_owner.is_some() {
3776 return Err(::serde::de::Error::duplicate_field("owner"));
3777 }
3778 field_owner = Some(map.next_value()?);
3779 }
3780 "title" => {
3781 if field_title.is_some() {
3782 return Err(::serde::de::Error::duplicate_field("title"));
3783 }
3784 field_title = Some(map.next_value()?);
3785 }
3786 "revision" => {
3787 if field_revision.is_some() {
3788 return Err(::serde::de::Error::duplicate_field("revision"));
3789 }
3790 field_revision = Some(map.next_value()?);
3791 }
3792 "mime_type" => {
3793 if field_mime_type.is_some() {
3794 return Err(::serde::de::Error::duplicate_field("mime_type"));
3795 }
3796 field_mime_type = Some(map.next_value()?);
3797 }
3798 _ => {
3799 map.next_value::<::serde_json::Value>()?;
3801 }
3802 }
3803 }
3804 if optional && nothing {
3805 return Ok(None);
3806 }
3807 let result = PaperDocExportResult {
3808 owner: field_owner.ok_or_else(|| ::serde::de::Error::missing_field("owner"))?,
3809 title: field_title.ok_or_else(|| ::serde::de::Error::missing_field("title"))?,
3810 revision: field_revision.ok_or_else(|| ::serde::de::Error::missing_field("revision"))?,
3811 mime_type: field_mime_type.ok_or_else(|| ::serde::de::Error::missing_field("mime_type"))?,
3812 };
3813 Ok(Some(result))
3814 }
3815
3816 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
3817 &self,
3818 s: &mut S::SerializeStruct,
3819 ) -> Result<(), S::Error> {
3820 use serde::ser::SerializeStruct;
3821 s.serialize_field("owner", &self.owner)?;
3822 s.serialize_field("title", &self.title)?;
3823 s.serialize_field("revision", &self.revision)?;
3824 s.serialize_field("mime_type", &self.mime_type)?;
3825 Ok(())
3826 }
3827}
3828
3829impl<'de> ::serde::de::Deserialize<'de> for PaperDocExportResult {
3830 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3831 use serde::de::{MapAccess, Visitor};
3833 struct StructVisitor;
3834 impl<'de> Visitor<'de> for StructVisitor {
3835 type Value = PaperDocExportResult;
3836 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3837 f.write_str("a PaperDocExportResult struct")
3838 }
3839 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
3840 PaperDocExportResult::internal_deserialize(map)
3841 }
3842 }
3843 deserializer.deserialize_struct("PaperDocExportResult", PAPER_DOC_EXPORT_RESULT_FIELDS, StructVisitor)
3844 }
3845}
3846
3847impl ::serde::ser::Serialize for PaperDocExportResult {
3848 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3849 use serde::ser::SerializeStruct;
3851 let mut s = serializer.serialize_struct("PaperDocExportResult", 4)?;
3852 self.internal_serialize::<S>(&mut s)?;
3853 s.end()
3854 }
3855}
3856
3857#[derive(Debug, Clone, PartialEq, Eq)]
3859#[non_exhaustive] pub struct PaperDocGetMetadataResult {
3861 pub doc_id: PaperDocId,
3863 pub owner: String,
3865 pub title: String,
3867 pub created_date: crate::types::common::DropboxTimestamp,
3869 pub status: PaperDocStatus,
3871 pub revision: i64,
3873 pub last_updated_date: crate::types::common::DropboxTimestamp,
3875 pub last_editor: String,
3877}
3878
3879impl PaperDocGetMetadataResult {
3880 pub fn new(
3881 doc_id: PaperDocId,
3882 owner: String,
3883 title: String,
3884 created_date: crate::types::common::DropboxTimestamp,
3885 status: PaperDocStatus,
3886 revision: i64,
3887 last_updated_date: crate::types::common::DropboxTimestamp,
3888 last_editor: String,
3889 ) -> Self {
3890 PaperDocGetMetadataResult {
3891 doc_id,
3892 owner,
3893 title,
3894 created_date,
3895 status,
3896 revision,
3897 last_updated_date,
3898 last_editor,
3899 }
3900 }
3901}
3902
3903const PAPER_DOC_GET_METADATA_RESULT_FIELDS: &[&str] = &["doc_id",
3904 "owner",
3905 "title",
3906 "created_date",
3907 "status",
3908 "revision",
3909 "last_updated_date",
3910 "last_editor"];
3911impl PaperDocGetMetadataResult {
3912 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
3913 map: V,
3914 ) -> Result<PaperDocGetMetadataResult, V::Error> {
3915 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
3916 }
3917
3918 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
3919 mut map: V,
3920 optional: bool,
3921 ) -> Result<Option<PaperDocGetMetadataResult>, V::Error> {
3922 let mut field_doc_id = None;
3923 let mut field_owner = None;
3924 let mut field_title = None;
3925 let mut field_created_date = None;
3926 let mut field_status = None;
3927 let mut field_revision = None;
3928 let mut field_last_updated_date = None;
3929 let mut field_last_editor = None;
3930 let mut nothing = true;
3931 while let Some(key) = map.next_key::<&str>()? {
3932 nothing = false;
3933 match key {
3934 "doc_id" => {
3935 if field_doc_id.is_some() {
3936 return Err(::serde::de::Error::duplicate_field("doc_id"));
3937 }
3938 field_doc_id = Some(map.next_value()?);
3939 }
3940 "owner" => {
3941 if field_owner.is_some() {
3942 return Err(::serde::de::Error::duplicate_field("owner"));
3943 }
3944 field_owner = Some(map.next_value()?);
3945 }
3946 "title" => {
3947 if field_title.is_some() {
3948 return Err(::serde::de::Error::duplicate_field("title"));
3949 }
3950 field_title = Some(map.next_value()?);
3951 }
3952 "created_date" => {
3953 if field_created_date.is_some() {
3954 return Err(::serde::de::Error::duplicate_field("created_date"));
3955 }
3956 field_created_date = Some(map.next_value()?);
3957 }
3958 "status" => {
3959 if field_status.is_some() {
3960 return Err(::serde::de::Error::duplicate_field("status"));
3961 }
3962 field_status = Some(map.next_value()?);
3963 }
3964 "revision" => {
3965 if field_revision.is_some() {
3966 return Err(::serde::de::Error::duplicate_field("revision"));
3967 }
3968 field_revision = Some(map.next_value()?);
3969 }
3970 "last_updated_date" => {
3971 if field_last_updated_date.is_some() {
3972 return Err(::serde::de::Error::duplicate_field("last_updated_date"));
3973 }
3974 field_last_updated_date = Some(map.next_value()?);
3975 }
3976 "last_editor" => {
3977 if field_last_editor.is_some() {
3978 return Err(::serde::de::Error::duplicate_field("last_editor"));
3979 }
3980 field_last_editor = Some(map.next_value()?);
3981 }
3982 _ => {
3983 map.next_value::<::serde_json::Value>()?;
3985 }
3986 }
3987 }
3988 if optional && nothing {
3989 return Ok(None);
3990 }
3991 let result = PaperDocGetMetadataResult {
3992 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
3993 owner: field_owner.ok_or_else(|| ::serde::de::Error::missing_field("owner"))?,
3994 title: field_title.ok_or_else(|| ::serde::de::Error::missing_field("title"))?,
3995 created_date: field_created_date.ok_or_else(|| ::serde::de::Error::missing_field("created_date"))?,
3996 status: field_status.ok_or_else(|| ::serde::de::Error::missing_field("status"))?,
3997 revision: field_revision.ok_or_else(|| ::serde::de::Error::missing_field("revision"))?,
3998 last_updated_date: field_last_updated_date.ok_or_else(|| ::serde::de::Error::missing_field("last_updated_date"))?,
3999 last_editor: field_last_editor.ok_or_else(|| ::serde::de::Error::missing_field("last_editor"))?,
4000 };
4001 Ok(Some(result))
4002 }
4003
4004 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4005 &self,
4006 s: &mut S::SerializeStruct,
4007 ) -> Result<(), S::Error> {
4008 use serde::ser::SerializeStruct;
4009 s.serialize_field("doc_id", &self.doc_id)?;
4010 s.serialize_field("owner", &self.owner)?;
4011 s.serialize_field("title", &self.title)?;
4012 s.serialize_field("created_date", &self.created_date)?;
4013 s.serialize_field("status", &self.status)?;
4014 s.serialize_field("revision", &self.revision)?;
4015 s.serialize_field("last_updated_date", &self.last_updated_date)?;
4016 s.serialize_field("last_editor", &self.last_editor)?;
4017 Ok(())
4018 }
4019}
4020
4021impl<'de> ::serde::de::Deserialize<'de> for PaperDocGetMetadataResult {
4022 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4023 use serde::de::{MapAccess, Visitor};
4025 struct StructVisitor;
4026 impl<'de> Visitor<'de> for StructVisitor {
4027 type Value = PaperDocGetMetadataResult;
4028 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4029 f.write_str("a PaperDocGetMetadataResult struct")
4030 }
4031 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4032 PaperDocGetMetadataResult::internal_deserialize(map)
4033 }
4034 }
4035 deserializer.deserialize_struct("PaperDocGetMetadataResult", PAPER_DOC_GET_METADATA_RESULT_FIELDS, StructVisitor)
4036 }
4037}
4038
4039impl ::serde::ser::Serialize for PaperDocGetMetadataResult {
4040 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4041 use serde::ser::SerializeStruct;
4043 let mut s = serializer.serialize_struct("PaperDocGetMetadataResult", 8)?;
4044 self.internal_serialize::<S>(&mut s)?;
4045 s.end()
4046 }
4047}
4048
4049#[derive(Debug, Clone, PartialEq, Eq)]
4050#[non_exhaustive] pub enum PaperDocPermissionLevel {
4052 Edit,
4054 ViewAndComment,
4056 Other,
4059}
4060
4061impl<'de> ::serde::de::Deserialize<'de> for PaperDocPermissionLevel {
4062 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4063 use serde::de::{self, MapAccess, Visitor};
4065 struct EnumVisitor;
4066 impl<'de> Visitor<'de> for EnumVisitor {
4067 type Value = PaperDocPermissionLevel;
4068 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4069 f.write_str("a PaperDocPermissionLevel structure")
4070 }
4071 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4072 let tag: &str = match map.next_key()? {
4073 Some(".tag") => map.next_value()?,
4074 _ => return Err(de::Error::missing_field(".tag"))
4075 };
4076 let value = match tag {
4077 "edit" => PaperDocPermissionLevel::Edit,
4078 "view_and_comment" => PaperDocPermissionLevel::ViewAndComment,
4079 _ => PaperDocPermissionLevel::Other,
4080 };
4081 crate::eat_json_fields(&mut map)?;
4082 Ok(value)
4083 }
4084 }
4085 const VARIANTS: &[&str] = &["edit",
4086 "view_and_comment",
4087 "other"];
4088 deserializer.deserialize_struct("PaperDocPermissionLevel", VARIANTS, EnumVisitor)
4089 }
4090}
4091
4092impl ::serde::ser::Serialize for PaperDocPermissionLevel {
4093 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4094 use serde::ser::SerializeStruct;
4096 match self {
4097 PaperDocPermissionLevel::Edit => {
4098 let mut s = serializer.serialize_struct("PaperDocPermissionLevel", 1)?;
4100 s.serialize_field(".tag", "edit")?;
4101 s.end()
4102 }
4103 PaperDocPermissionLevel::ViewAndComment => {
4104 let mut s = serializer.serialize_struct("PaperDocPermissionLevel", 1)?;
4106 s.serialize_field(".tag", "view_and_comment")?;
4107 s.end()
4108 }
4109 PaperDocPermissionLevel::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4110 }
4111 }
4112}
4113
4114#[derive(Debug, Clone, PartialEq, Eq)]
4115#[non_exhaustive] pub struct PaperDocSharingPolicy {
4117 pub doc_id: PaperDocId,
4119 pub sharing_policy: SharingPolicy,
4121}
4122
4123impl PaperDocSharingPolicy {
4124 pub fn new(doc_id: PaperDocId, sharing_policy: SharingPolicy) -> Self {
4125 PaperDocSharingPolicy {
4126 doc_id,
4127 sharing_policy,
4128 }
4129 }
4130}
4131
4132const PAPER_DOC_SHARING_POLICY_FIELDS: &[&str] = &["doc_id",
4133 "sharing_policy"];
4134impl PaperDocSharingPolicy {
4135 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4136 map: V,
4137 ) -> Result<PaperDocSharingPolicy, V::Error> {
4138 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4139 }
4140
4141 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4142 mut map: V,
4143 optional: bool,
4144 ) -> Result<Option<PaperDocSharingPolicy>, V::Error> {
4145 let mut field_doc_id = None;
4146 let mut field_sharing_policy = None;
4147 let mut nothing = true;
4148 while let Some(key) = map.next_key::<&str>()? {
4149 nothing = false;
4150 match key {
4151 "doc_id" => {
4152 if field_doc_id.is_some() {
4153 return Err(::serde::de::Error::duplicate_field("doc_id"));
4154 }
4155 field_doc_id = Some(map.next_value()?);
4156 }
4157 "sharing_policy" => {
4158 if field_sharing_policy.is_some() {
4159 return Err(::serde::de::Error::duplicate_field("sharing_policy"));
4160 }
4161 field_sharing_policy = Some(map.next_value()?);
4162 }
4163 _ => {
4164 map.next_value::<::serde_json::Value>()?;
4166 }
4167 }
4168 }
4169 if optional && nothing {
4170 return Ok(None);
4171 }
4172 let result = PaperDocSharingPolicy {
4173 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
4174 sharing_policy: field_sharing_policy.ok_or_else(|| ::serde::de::Error::missing_field("sharing_policy"))?,
4175 };
4176 Ok(Some(result))
4177 }
4178
4179 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4180 &self,
4181 s: &mut S::SerializeStruct,
4182 ) -> Result<(), S::Error> {
4183 use serde::ser::SerializeStruct;
4184 s.serialize_field("doc_id", &self.doc_id)?;
4185 s.serialize_field("sharing_policy", &self.sharing_policy)?;
4186 Ok(())
4187 }
4188}
4189
4190impl<'de> ::serde::de::Deserialize<'de> for PaperDocSharingPolicy {
4191 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4192 use serde::de::{MapAccess, Visitor};
4194 struct StructVisitor;
4195 impl<'de> Visitor<'de> for StructVisitor {
4196 type Value = PaperDocSharingPolicy;
4197 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4198 f.write_str("a PaperDocSharingPolicy struct")
4199 }
4200 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4201 PaperDocSharingPolicy::internal_deserialize(map)
4202 }
4203 }
4204 deserializer.deserialize_struct("PaperDocSharingPolicy", PAPER_DOC_SHARING_POLICY_FIELDS, StructVisitor)
4205 }
4206}
4207
4208impl ::serde::ser::Serialize for PaperDocSharingPolicy {
4209 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4210 use serde::ser::SerializeStruct;
4212 let mut s = serializer.serialize_struct("PaperDocSharingPolicy", 2)?;
4213 self.internal_serialize::<S>(&mut s)?;
4214 s.end()
4215 }
4216}
4217
4218impl From<PaperDocSharingPolicy> for RefPaperDoc {
4220 fn from(subtype: PaperDocSharingPolicy) -> Self {
4221 Self {
4222 doc_id: subtype.doc_id,
4223 }
4224 }
4225}
4226#[derive(Debug, Clone, PartialEq, Eq)]
4228#[non_exhaustive] pub enum PaperDocStatus {
4230 Active,
4232 Deleted,
4234 Other,
4237}
4238
4239impl<'de> ::serde::de::Deserialize<'de> for PaperDocStatus {
4240 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4241 use serde::de::{self, MapAccess, Visitor};
4243 struct EnumVisitor;
4244 impl<'de> Visitor<'de> for EnumVisitor {
4245 type Value = PaperDocStatus;
4246 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4247 f.write_str("a PaperDocStatus structure")
4248 }
4249 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4250 let tag: &str = match map.next_key()? {
4251 Some(".tag") => map.next_value()?,
4252 _ => return Err(de::Error::missing_field(".tag"))
4253 };
4254 let value = match tag {
4255 "active" => PaperDocStatus::Active,
4256 "deleted" => PaperDocStatus::Deleted,
4257 _ => PaperDocStatus::Other,
4258 };
4259 crate::eat_json_fields(&mut map)?;
4260 Ok(value)
4261 }
4262 }
4263 const VARIANTS: &[&str] = &["active",
4264 "deleted",
4265 "other"];
4266 deserializer.deserialize_struct("PaperDocStatus", VARIANTS, EnumVisitor)
4267 }
4268}
4269
4270impl ::serde::ser::Serialize for PaperDocStatus {
4271 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4272 use serde::ser::SerializeStruct;
4274 match self {
4275 PaperDocStatus::Active => {
4276 let mut s = serializer.serialize_struct("PaperDocStatus", 1)?;
4278 s.serialize_field(".tag", "active")?;
4279 s.end()
4280 }
4281 PaperDocStatus::Deleted => {
4282 let mut s = serializer.serialize_struct("PaperDocStatus", 1)?;
4284 s.serialize_field(".tag", "deleted")?;
4285 s.end()
4286 }
4287 PaperDocStatus::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4288 }
4289 }
4290}
4291
4292#[derive(Debug, Clone, PartialEq, Eq)]
4293#[non_exhaustive] pub struct PaperDocUpdateArgs {
4295 pub doc_id: PaperDocId,
4297 pub doc_update_policy: PaperDocUpdatePolicy,
4299 pub revision: i64,
4302 pub import_format: ImportFormat,
4304}
4305
4306impl PaperDocUpdateArgs {
4307 pub fn new(
4308 doc_id: PaperDocId,
4309 doc_update_policy: PaperDocUpdatePolicy,
4310 revision: i64,
4311 import_format: ImportFormat,
4312 ) -> Self {
4313 PaperDocUpdateArgs {
4314 doc_id,
4315 doc_update_policy,
4316 revision,
4317 import_format,
4318 }
4319 }
4320}
4321
4322const PAPER_DOC_UPDATE_ARGS_FIELDS: &[&str] = &["doc_id",
4323 "doc_update_policy",
4324 "revision",
4325 "import_format"];
4326impl PaperDocUpdateArgs {
4327 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4328 map: V,
4329 ) -> Result<PaperDocUpdateArgs, V::Error> {
4330 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4331 }
4332
4333 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4334 mut map: V,
4335 optional: bool,
4336 ) -> Result<Option<PaperDocUpdateArgs>, V::Error> {
4337 let mut field_doc_id = None;
4338 let mut field_doc_update_policy = None;
4339 let mut field_revision = None;
4340 let mut field_import_format = None;
4341 let mut nothing = true;
4342 while let Some(key) = map.next_key::<&str>()? {
4343 nothing = false;
4344 match key {
4345 "doc_id" => {
4346 if field_doc_id.is_some() {
4347 return Err(::serde::de::Error::duplicate_field("doc_id"));
4348 }
4349 field_doc_id = Some(map.next_value()?);
4350 }
4351 "doc_update_policy" => {
4352 if field_doc_update_policy.is_some() {
4353 return Err(::serde::de::Error::duplicate_field("doc_update_policy"));
4354 }
4355 field_doc_update_policy = Some(map.next_value()?);
4356 }
4357 "revision" => {
4358 if field_revision.is_some() {
4359 return Err(::serde::de::Error::duplicate_field("revision"));
4360 }
4361 field_revision = Some(map.next_value()?);
4362 }
4363 "import_format" => {
4364 if field_import_format.is_some() {
4365 return Err(::serde::de::Error::duplicate_field("import_format"));
4366 }
4367 field_import_format = Some(map.next_value()?);
4368 }
4369 _ => {
4370 map.next_value::<::serde_json::Value>()?;
4372 }
4373 }
4374 }
4375 if optional && nothing {
4376 return Ok(None);
4377 }
4378 let result = PaperDocUpdateArgs {
4379 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
4380 doc_update_policy: field_doc_update_policy.ok_or_else(|| ::serde::de::Error::missing_field("doc_update_policy"))?,
4381 revision: field_revision.ok_or_else(|| ::serde::de::Error::missing_field("revision"))?,
4382 import_format: field_import_format.ok_or_else(|| ::serde::de::Error::missing_field("import_format"))?,
4383 };
4384 Ok(Some(result))
4385 }
4386
4387 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4388 &self,
4389 s: &mut S::SerializeStruct,
4390 ) -> Result<(), S::Error> {
4391 use serde::ser::SerializeStruct;
4392 s.serialize_field("doc_id", &self.doc_id)?;
4393 s.serialize_field("doc_update_policy", &self.doc_update_policy)?;
4394 s.serialize_field("revision", &self.revision)?;
4395 s.serialize_field("import_format", &self.import_format)?;
4396 Ok(())
4397 }
4398}
4399
4400impl<'de> ::serde::de::Deserialize<'de> for PaperDocUpdateArgs {
4401 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4402 use serde::de::{MapAccess, Visitor};
4404 struct StructVisitor;
4405 impl<'de> Visitor<'de> for StructVisitor {
4406 type Value = PaperDocUpdateArgs;
4407 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4408 f.write_str("a PaperDocUpdateArgs struct")
4409 }
4410 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4411 PaperDocUpdateArgs::internal_deserialize(map)
4412 }
4413 }
4414 deserializer.deserialize_struct("PaperDocUpdateArgs", PAPER_DOC_UPDATE_ARGS_FIELDS, StructVisitor)
4415 }
4416}
4417
4418impl ::serde::ser::Serialize for PaperDocUpdateArgs {
4419 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4420 use serde::ser::SerializeStruct;
4422 let mut s = serializer.serialize_struct("PaperDocUpdateArgs", 4)?;
4423 self.internal_serialize::<S>(&mut s)?;
4424 s.end()
4425 }
4426}
4427
4428impl From<PaperDocUpdateArgs> for RefPaperDoc {
4430 fn from(subtype: PaperDocUpdateArgs) -> Self {
4431 Self {
4432 doc_id: subtype.doc_id,
4433 }
4434 }
4435}
4436#[derive(Debug, Clone, PartialEq, Eq)]
4437#[non_exhaustive] pub enum PaperDocUpdateError {
4439 InsufficientPermissions,
4444 DocNotFound,
4446 ContentMalformed,
4448 RevisionMismatch,
4450 DocLengthExceeded,
4452 ImageSizeExceeded,
4455 DocArchived,
4457 DocDeleted,
4459 Other,
4462}
4463
4464impl<'de> ::serde::de::Deserialize<'de> for PaperDocUpdateError {
4465 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4466 use serde::de::{self, MapAccess, Visitor};
4468 struct EnumVisitor;
4469 impl<'de> Visitor<'de> for EnumVisitor {
4470 type Value = PaperDocUpdateError;
4471 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4472 f.write_str("a PaperDocUpdateError structure")
4473 }
4474 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4475 let tag: &str = match map.next_key()? {
4476 Some(".tag") => map.next_value()?,
4477 _ => return Err(de::Error::missing_field(".tag"))
4478 };
4479 let value = match tag {
4480 "insufficient_permissions" => PaperDocUpdateError::InsufficientPermissions,
4481 "doc_not_found" => PaperDocUpdateError::DocNotFound,
4482 "content_malformed" => PaperDocUpdateError::ContentMalformed,
4483 "revision_mismatch" => PaperDocUpdateError::RevisionMismatch,
4484 "doc_length_exceeded" => PaperDocUpdateError::DocLengthExceeded,
4485 "image_size_exceeded" => PaperDocUpdateError::ImageSizeExceeded,
4486 "doc_archived" => PaperDocUpdateError::DocArchived,
4487 "doc_deleted" => PaperDocUpdateError::DocDeleted,
4488 _ => PaperDocUpdateError::Other,
4489 };
4490 crate::eat_json_fields(&mut map)?;
4491 Ok(value)
4492 }
4493 }
4494 const VARIANTS: &[&str] = &["insufficient_permissions",
4495 "other",
4496 "doc_not_found",
4497 "content_malformed",
4498 "revision_mismatch",
4499 "doc_length_exceeded",
4500 "image_size_exceeded",
4501 "doc_archived",
4502 "doc_deleted"];
4503 deserializer.deserialize_struct("PaperDocUpdateError", VARIANTS, EnumVisitor)
4504 }
4505}
4506
4507impl ::serde::ser::Serialize for PaperDocUpdateError {
4508 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4509 use serde::ser::SerializeStruct;
4511 match self {
4512 PaperDocUpdateError::InsufficientPermissions => {
4513 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4515 s.serialize_field(".tag", "insufficient_permissions")?;
4516 s.end()
4517 }
4518 PaperDocUpdateError::DocNotFound => {
4519 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4521 s.serialize_field(".tag", "doc_not_found")?;
4522 s.end()
4523 }
4524 PaperDocUpdateError::ContentMalformed => {
4525 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4527 s.serialize_field(".tag", "content_malformed")?;
4528 s.end()
4529 }
4530 PaperDocUpdateError::RevisionMismatch => {
4531 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4533 s.serialize_field(".tag", "revision_mismatch")?;
4534 s.end()
4535 }
4536 PaperDocUpdateError::DocLengthExceeded => {
4537 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4539 s.serialize_field(".tag", "doc_length_exceeded")?;
4540 s.end()
4541 }
4542 PaperDocUpdateError::ImageSizeExceeded => {
4543 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4545 s.serialize_field(".tag", "image_size_exceeded")?;
4546 s.end()
4547 }
4548 PaperDocUpdateError::DocArchived => {
4549 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4551 s.serialize_field(".tag", "doc_archived")?;
4552 s.end()
4553 }
4554 PaperDocUpdateError::DocDeleted => {
4555 let mut s = serializer.serialize_struct("PaperDocUpdateError", 1)?;
4557 s.serialize_field(".tag", "doc_deleted")?;
4558 s.end()
4559 }
4560 PaperDocUpdateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4561 }
4562 }
4563}
4564
4565impl ::std::error::Error for PaperDocUpdateError {
4566}
4567
4568impl ::std::fmt::Display for PaperDocUpdateError {
4569 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4570 match self {
4571 PaperDocUpdateError::DocNotFound => f.write_str("The required doc was not found."),
4572 PaperDocUpdateError::ContentMalformed => f.write_str("The provided content was malformed and cannot be imported to Paper."),
4573 PaperDocUpdateError::RevisionMismatch => f.write_str("The provided revision does not match the document head."),
4574 PaperDocUpdateError::DocLengthExceeded => f.write_str("The newly created Paper doc would be too large, split the content into multiple docs."),
4575 PaperDocUpdateError::ImageSizeExceeded => f.write_str("The imported document contains an image that is too large. The current limit is 1MB. This only applies to HTML with data URI."),
4576 PaperDocUpdateError::DocArchived => f.write_str("This operation is not allowed on archived Paper docs."),
4577 PaperDocUpdateError::DocDeleted => f.write_str("This operation is not allowed on deleted Paper docs."),
4578 _ => write!(f, "{:?}", *self),
4579 }
4580 }
4581}
4582
4583impl From<DocLookupError> for PaperDocUpdateError {
4585 fn from(parent: DocLookupError) -> Self {
4586 match parent {
4587 DocLookupError::InsufficientPermissions => PaperDocUpdateError::InsufficientPermissions,
4588 DocLookupError::Other => PaperDocUpdateError::Other,
4589 DocLookupError::DocNotFound => PaperDocUpdateError::DocNotFound,
4590 }
4591 }
4592}
4593#[derive(Debug, Clone, PartialEq, Eq)]
4594#[non_exhaustive] pub enum PaperDocUpdatePolicy {
4596 Append,
4598 Prepend,
4600 OverwriteAll,
4602 Other,
4605}
4606
4607impl<'de> ::serde::de::Deserialize<'de> for PaperDocUpdatePolicy {
4608 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4609 use serde::de::{self, MapAccess, Visitor};
4611 struct EnumVisitor;
4612 impl<'de> Visitor<'de> for EnumVisitor {
4613 type Value = PaperDocUpdatePolicy;
4614 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4615 f.write_str("a PaperDocUpdatePolicy structure")
4616 }
4617 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4618 let tag: &str = match map.next_key()? {
4619 Some(".tag") => map.next_value()?,
4620 _ => return Err(de::Error::missing_field(".tag"))
4621 };
4622 let value = match tag {
4623 "append" => PaperDocUpdatePolicy::Append,
4624 "prepend" => PaperDocUpdatePolicy::Prepend,
4625 "overwrite_all" => PaperDocUpdatePolicy::OverwriteAll,
4626 _ => PaperDocUpdatePolicy::Other,
4627 };
4628 crate::eat_json_fields(&mut map)?;
4629 Ok(value)
4630 }
4631 }
4632 const VARIANTS: &[&str] = &["append",
4633 "prepend",
4634 "overwrite_all",
4635 "other"];
4636 deserializer.deserialize_struct("PaperDocUpdatePolicy", VARIANTS, EnumVisitor)
4637 }
4638}
4639
4640impl ::serde::ser::Serialize for PaperDocUpdatePolicy {
4641 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4642 use serde::ser::SerializeStruct;
4644 match self {
4645 PaperDocUpdatePolicy::Append => {
4646 let mut s = serializer.serialize_struct("PaperDocUpdatePolicy", 1)?;
4648 s.serialize_field(".tag", "append")?;
4649 s.end()
4650 }
4651 PaperDocUpdatePolicy::Prepend => {
4652 let mut s = serializer.serialize_struct("PaperDocUpdatePolicy", 1)?;
4654 s.serialize_field(".tag", "prepend")?;
4655 s.end()
4656 }
4657 PaperDocUpdatePolicy::OverwriteAll => {
4658 let mut s = serializer.serialize_struct("PaperDocUpdatePolicy", 1)?;
4660 s.serialize_field(".tag", "overwrite_all")?;
4661 s.end()
4662 }
4663 PaperDocUpdatePolicy::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4664 }
4665 }
4666}
4667
4668#[derive(Debug, Clone, PartialEq, Eq)]
4669#[non_exhaustive] pub struct PaperFolderCreateArg {
4671 pub name: String,
4673 pub parent_folder_id: Option<String>,
4677 pub is_team_folder: Option<bool>,
4682}
4683
4684impl PaperFolderCreateArg {
4685 pub fn new(name: String) -> Self {
4686 PaperFolderCreateArg {
4687 name,
4688 parent_folder_id: None,
4689 is_team_folder: None,
4690 }
4691 }
4692
4693 pub fn with_parent_folder_id(mut self, value: String) -> Self {
4694 self.parent_folder_id = Some(value);
4695 self
4696 }
4697
4698 pub fn with_is_team_folder(mut self, value: bool) -> Self {
4699 self.is_team_folder = Some(value);
4700 self
4701 }
4702}
4703
4704const PAPER_FOLDER_CREATE_ARG_FIELDS: &[&str] = &["name",
4705 "parent_folder_id",
4706 "is_team_folder"];
4707impl PaperFolderCreateArg {
4708 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4709 map: V,
4710 ) -> Result<PaperFolderCreateArg, V::Error> {
4711 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4712 }
4713
4714 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4715 mut map: V,
4716 optional: bool,
4717 ) -> Result<Option<PaperFolderCreateArg>, V::Error> {
4718 let mut field_name = None;
4719 let mut field_parent_folder_id = None;
4720 let mut field_is_team_folder = None;
4721 let mut nothing = true;
4722 while let Some(key) = map.next_key::<&str>()? {
4723 nothing = false;
4724 match key {
4725 "name" => {
4726 if field_name.is_some() {
4727 return Err(::serde::de::Error::duplicate_field("name"));
4728 }
4729 field_name = Some(map.next_value()?);
4730 }
4731 "parent_folder_id" => {
4732 if field_parent_folder_id.is_some() {
4733 return Err(::serde::de::Error::duplicate_field("parent_folder_id"));
4734 }
4735 field_parent_folder_id = Some(map.next_value()?);
4736 }
4737 "is_team_folder" => {
4738 if field_is_team_folder.is_some() {
4739 return Err(::serde::de::Error::duplicate_field("is_team_folder"));
4740 }
4741 field_is_team_folder = Some(map.next_value()?);
4742 }
4743 _ => {
4744 map.next_value::<::serde_json::Value>()?;
4746 }
4747 }
4748 }
4749 if optional && nothing {
4750 return Ok(None);
4751 }
4752 let result = PaperFolderCreateArg {
4753 name: field_name.ok_or_else(|| ::serde::de::Error::missing_field("name"))?,
4754 parent_folder_id: field_parent_folder_id.and_then(Option::flatten),
4755 is_team_folder: field_is_team_folder.and_then(Option::flatten),
4756 };
4757 Ok(Some(result))
4758 }
4759
4760 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4761 &self,
4762 s: &mut S::SerializeStruct,
4763 ) -> Result<(), S::Error> {
4764 use serde::ser::SerializeStruct;
4765 s.serialize_field("name", &self.name)?;
4766 if let Some(val) = &self.parent_folder_id {
4767 s.serialize_field("parent_folder_id", val)?;
4768 }
4769 if let Some(val) = &self.is_team_folder {
4770 s.serialize_field("is_team_folder", val)?;
4771 }
4772 Ok(())
4773 }
4774}
4775
4776impl<'de> ::serde::de::Deserialize<'de> for PaperFolderCreateArg {
4777 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4778 use serde::de::{MapAccess, Visitor};
4780 struct StructVisitor;
4781 impl<'de> Visitor<'de> for StructVisitor {
4782 type Value = PaperFolderCreateArg;
4783 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4784 f.write_str("a PaperFolderCreateArg struct")
4785 }
4786 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4787 PaperFolderCreateArg::internal_deserialize(map)
4788 }
4789 }
4790 deserializer.deserialize_struct("PaperFolderCreateArg", PAPER_FOLDER_CREATE_ARG_FIELDS, StructVisitor)
4791 }
4792}
4793
4794impl ::serde::ser::Serialize for PaperFolderCreateArg {
4795 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4796 use serde::ser::SerializeStruct;
4798 let mut s = serializer.serialize_struct("PaperFolderCreateArg", 3)?;
4799 self.internal_serialize::<S>(&mut s)?;
4800 s.end()
4801 }
4802}
4803
4804#[derive(Debug, Clone, PartialEq, Eq)]
4805#[non_exhaustive] pub enum PaperFolderCreateError {
4807 InsufficientPermissions,
4812 FolderNotFound,
4814 InvalidFolderId,
4816 Other,
4819}
4820
4821impl<'de> ::serde::de::Deserialize<'de> for PaperFolderCreateError {
4822 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4823 use serde::de::{self, MapAccess, Visitor};
4825 struct EnumVisitor;
4826 impl<'de> Visitor<'de> for EnumVisitor {
4827 type Value = PaperFolderCreateError;
4828 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4829 f.write_str("a PaperFolderCreateError structure")
4830 }
4831 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
4832 let tag: &str = match map.next_key()? {
4833 Some(".tag") => map.next_value()?,
4834 _ => return Err(de::Error::missing_field(".tag"))
4835 };
4836 let value = match tag {
4837 "insufficient_permissions" => PaperFolderCreateError::InsufficientPermissions,
4838 "folder_not_found" => PaperFolderCreateError::FolderNotFound,
4839 "invalid_folder_id" => PaperFolderCreateError::InvalidFolderId,
4840 _ => PaperFolderCreateError::Other,
4841 };
4842 crate::eat_json_fields(&mut map)?;
4843 Ok(value)
4844 }
4845 }
4846 const VARIANTS: &[&str] = &["insufficient_permissions",
4847 "other",
4848 "folder_not_found",
4849 "invalid_folder_id"];
4850 deserializer.deserialize_struct("PaperFolderCreateError", VARIANTS, EnumVisitor)
4851 }
4852}
4853
4854impl ::serde::ser::Serialize for PaperFolderCreateError {
4855 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4856 use serde::ser::SerializeStruct;
4858 match self {
4859 PaperFolderCreateError::InsufficientPermissions => {
4860 let mut s = serializer.serialize_struct("PaperFolderCreateError", 1)?;
4862 s.serialize_field(".tag", "insufficient_permissions")?;
4863 s.end()
4864 }
4865 PaperFolderCreateError::FolderNotFound => {
4866 let mut s = serializer.serialize_struct("PaperFolderCreateError", 1)?;
4868 s.serialize_field(".tag", "folder_not_found")?;
4869 s.end()
4870 }
4871 PaperFolderCreateError::InvalidFolderId => {
4872 let mut s = serializer.serialize_struct("PaperFolderCreateError", 1)?;
4874 s.serialize_field(".tag", "invalid_folder_id")?;
4875 s.end()
4876 }
4877 PaperFolderCreateError::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
4878 }
4879 }
4880}
4881
4882impl ::std::error::Error for PaperFolderCreateError {
4883}
4884
4885impl ::std::fmt::Display for PaperFolderCreateError {
4886 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4887 match self {
4888 PaperFolderCreateError::FolderNotFound => f.write_str("The specified parent Paper folder cannot be found."),
4889 PaperFolderCreateError::InvalidFolderId => f.write_str("The folder id cannot be decrypted to valid folder id."),
4890 _ => write!(f, "{:?}", *self),
4891 }
4892 }
4893}
4894
4895impl From<PaperApiBaseError> for PaperFolderCreateError {
4897 fn from(parent: PaperApiBaseError) -> Self {
4898 match parent {
4899 PaperApiBaseError::InsufficientPermissions => PaperFolderCreateError::InsufficientPermissions,
4900 PaperApiBaseError::Other => PaperFolderCreateError::Other,
4901 }
4902 }
4903}
4904#[derive(Debug, Clone, PartialEq, Eq)]
4905#[non_exhaustive] pub struct PaperFolderCreateResult {
4907 pub folder_id: String,
4909}
4910
4911impl PaperFolderCreateResult {
4912 pub fn new(folder_id: String) -> Self {
4913 PaperFolderCreateResult {
4914 folder_id,
4915 }
4916 }
4917}
4918
4919const PAPER_FOLDER_CREATE_RESULT_FIELDS: &[&str] = &["folder_id"];
4920impl PaperFolderCreateResult {
4921 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
4922 map: V,
4923 ) -> Result<PaperFolderCreateResult, V::Error> {
4924 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
4925 }
4926
4927 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
4928 mut map: V,
4929 optional: bool,
4930 ) -> Result<Option<PaperFolderCreateResult>, V::Error> {
4931 let mut field_folder_id = None;
4932 let mut nothing = true;
4933 while let Some(key) = map.next_key::<&str>()? {
4934 nothing = false;
4935 match key {
4936 "folder_id" => {
4937 if field_folder_id.is_some() {
4938 return Err(::serde::de::Error::duplicate_field("folder_id"));
4939 }
4940 field_folder_id = Some(map.next_value()?);
4941 }
4942 _ => {
4943 map.next_value::<::serde_json::Value>()?;
4945 }
4946 }
4947 }
4948 if optional && nothing {
4949 return Ok(None);
4950 }
4951 let result = PaperFolderCreateResult {
4952 folder_id: field_folder_id.ok_or_else(|| ::serde::de::Error::missing_field("folder_id"))?,
4953 };
4954 Ok(Some(result))
4955 }
4956
4957 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
4958 &self,
4959 s: &mut S::SerializeStruct,
4960 ) -> Result<(), S::Error> {
4961 use serde::ser::SerializeStruct;
4962 s.serialize_field("folder_id", &self.folder_id)?;
4963 Ok(())
4964 }
4965}
4966
4967impl<'de> ::serde::de::Deserialize<'de> for PaperFolderCreateResult {
4968 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
4969 use serde::de::{MapAccess, Visitor};
4971 struct StructVisitor;
4972 impl<'de> Visitor<'de> for StructVisitor {
4973 type Value = PaperFolderCreateResult;
4974 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4975 f.write_str("a PaperFolderCreateResult struct")
4976 }
4977 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
4978 PaperFolderCreateResult::internal_deserialize(map)
4979 }
4980 }
4981 deserializer.deserialize_struct("PaperFolderCreateResult", PAPER_FOLDER_CREATE_RESULT_FIELDS, StructVisitor)
4982 }
4983}
4984
4985impl ::serde::ser::Serialize for PaperFolderCreateResult {
4986 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
4987 use serde::ser::SerializeStruct;
4989 let mut s = serializer.serialize_struct("PaperFolderCreateResult", 1)?;
4990 self.internal_serialize::<S>(&mut s)?;
4991 s.end()
4992 }
4993}
4994
4995#[derive(Debug, Clone, PartialEq, Eq)]
4996#[non_exhaustive] pub struct RefPaperDoc {
4998 pub doc_id: PaperDocId,
5000}
5001
5002impl RefPaperDoc {
5003 pub fn new(doc_id: PaperDocId) -> Self {
5004 RefPaperDoc {
5005 doc_id,
5006 }
5007 }
5008}
5009
5010const REF_PAPER_DOC_FIELDS: &[&str] = &["doc_id"];
5011impl RefPaperDoc {
5012 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5013 map: V,
5014 ) -> Result<RefPaperDoc, V::Error> {
5015 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5016 }
5017
5018 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5019 mut map: V,
5020 optional: bool,
5021 ) -> Result<Option<RefPaperDoc>, V::Error> {
5022 let mut field_doc_id = None;
5023 let mut nothing = true;
5024 while let Some(key) = map.next_key::<&str>()? {
5025 nothing = false;
5026 match key {
5027 "doc_id" => {
5028 if field_doc_id.is_some() {
5029 return Err(::serde::de::Error::duplicate_field("doc_id"));
5030 }
5031 field_doc_id = Some(map.next_value()?);
5032 }
5033 _ => {
5034 map.next_value::<::serde_json::Value>()?;
5036 }
5037 }
5038 }
5039 if optional && nothing {
5040 return Ok(None);
5041 }
5042 let result = RefPaperDoc {
5043 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
5044 };
5045 Ok(Some(result))
5046 }
5047
5048 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5049 &self,
5050 s: &mut S::SerializeStruct,
5051 ) -> Result<(), S::Error> {
5052 use serde::ser::SerializeStruct;
5053 s.serialize_field("doc_id", &self.doc_id)?;
5054 Ok(())
5055 }
5056}
5057
5058impl<'de> ::serde::de::Deserialize<'de> for RefPaperDoc {
5059 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5060 use serde::de::{MapAccess, Visitor};
5062 struct StructVisitor;
5063 impl<'de> Visitor<'de> for StructVisitor {
5064 type Value = RefPaperDoc;
5065 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5066 f.write_str("a RefPaperDoc struct")
5067 }
5068 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5069 RefPaperDoc::internal_deserialize(map)
5070 }
5071 }
5072 deserializer.deserialize_struct("RefPaperDoc", REF_PAPER_DOC_FIELDS, StructVisitor)
5073 }
5074}
5075
5076impl ::serde::ser::Serialize for RefPaperDoc {
5077 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5078 use serde::ser::SerializeStruct;
5080 let mut s = serializer.serialize_struct("RefPaperDoc", 1)?;
5081 self.internal_serialize::<S>(&mut s)?;
5082 s.end()
5083 }
5084}
5085
5086#[derive(Debug, Clone, PartialEq, Eq)]
5087#[non_exhaustive] pub struct RemovePaperDocUser {
5089 pub doc_id: PaperDocId,
5091 pub member: crate::types::sharing::MemberSelector,
5094}
5095
5096impl RemovePaperDocUser {
5097 pub fn new(doc_id: PaperDocId, member: crate::types::sharing::MemberSelector) -> Self {
5098 RemovePaperDocUser {
5099 doc_id,
5100 member,
5101 }
5102 }
5103}
5104
5105const REMOVE_PAPER_DOC_USER_FIELDS: &[&str] = &["doc_id",
5106 "member"];
5107impl RemovePaperDocUser {
5108 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5109 map: V,
5110 ) -> Result<RemovePaperDocUser, V::Error> {
5111 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5112 }
5113
5114 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5115 mut map: V,
5116 optional: bool,
5117 ) -> Result<Option<RemovePaperDocUser>, V::Error> {
5118 let mut field_doc_id = None;
5119 let mut field_member = None;
5120 let mut nothing = true;
5121 while let Some(key) = map.next_key::<&str>()? {
5122 nothing = false;
5123 match key {
5124 "doc_id" => {
5125 if field_doc_id.is_some() {
5126 return Err(::serde::de::Error::duplicate_field("doc_id"));
5127 }
5128 field_doc_id = Some(map.next_value()?);
5129 }
5130 "member" => {
5131 if field_member.is_some() {
5132 return Err(::serde::de::Error::duplicate_field("member"));
5133 }
5134 field_member = Some(map.next_value()?);
5135 }
5136 _ => {
5137 map.next_value::<::serde_json::Value>()?;
5139 }
5140 }
5141 }
5142 if optional && nothing {
5143 return Ok(None);
5144 }
5145 let result = RemovePaperDocUser {
5146 doc_id: field_doc_id.ok_or_else(|| ::serde::de::Error::missing_field("doc_id"))?,
5147 member: field_member.ok_or_else(|| ::serde::de::Error::missing_field("member"))?,
5148 };
5149 Ok(Some(result))
5150 }
5151
5152 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5153 &self,
5154 s: &mut S::SerializeStruct,
5155 ) -> Result<(), S::Error> {
5156 use serde::ser::SerializeStruct;
5157 s.serialize_field("doc_id", &self.doc_id)?;
5158 s.serialize_field("member", &self.member)?;
5159 Ok(())
5160 }
5161}
5162
5163impl<'de> ::serde::de::Deserialize<'de> for RemovePaperDocUser {
5164 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5165 use serde::de::{MapAccess, Visitor};
5167 struct StructVisitor;
5168 impl<'de> Visitor<'de> for StructVisitor {
5169 type Value = RemovePaperDocUser;
5170 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5171 f.write_str("a RemovePaperDocUser struct")
5172 }
5173 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5174 RemovePaperDocUser::internal_deserialize(map)
5175 }
5176 }
5177 deserializer.deserialize_struct("RemovePaperDocUser", REMOVE_PAPER_DOC_USER_FIELDS, StructVisitor)
5178 }
5179}
5180
5181impl ::serde::ser::Serialize for RemovePaperDocUser {
5182 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5183 use serde::ser::SerializeStruct;
5185 let mut s = serializer.serialize_struct("RemovePaperDocUser", 2)?;
5186 self.internal_serialize::<S>(&mut s)?;
5187 s.end()
5188 }
5189}
5190
5191impl From<RemovePaperDocUser> for RefPaperDoc {
5193 fn from(subtype: RemovePaperDocUser) -> Self {
5194 Self {
5195 doc_id: subtype.doc_id,
5196 }
5197 }
5198}
5199#[derive(Debug, Clone, PartialEq, Eq, Default)]
5201#[non_exhaustive] pub struct SharingPolicy {
5203 pub public_sharing_policy: Option<SharingPublicPolicyType>,
5205 pub team_sharing_policy: Option<SharingTeamPolicyType>,
5207}
5208
5209impl SharingPolicy {
5210 pub fn with_public_sharing_policy(mut self, value: SharingPublicPolicyType) -> Self {
5211 self.public_sharing_policy = Some(value);
5212 self
5213 }
5214
5215 pub fn with_team_sharing_policy(mut self, value: SharingTeamPolicyType) -> Self {
5216 self.team_sharing_policy = Some(value);
5217 self
5218 }
5219}
5220
5221const SHARING_POLICY_FIELDS: &[&str] = &["public_sharing_policy",
5222 "team_sharing_policy"];
5223impl SharingPolicy {
5224 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5226 mut map: V,
5227 ) -> Result<SharingPolicy, V::Error> {
5228 let mut field_public_sharing_policy = None;
5229 let mut field_team_sharing_policy = None;
5230 while let Some(key) = map.next_key::<&str>()? {
5231 match key {
5232 "public_sharing_policy" => {
5233 if field_public_sharing_policy.is_some() {
5234 return Err(::serde::de::Error::duplicate_field("public_sharing_policy"));
5235 }
5236 field_public_sharing_policy = Some(map.next_value()?);
5237 }
5238 "team_sharing_policy" => {
5239 if field_team_sharing_policy.is_some() {
5240 return Err(::serde::de::Error::duplicate_field("team_sharing_policy"));
5241 }
5242 field_team_sharing_policy = Some(map.next_value()?);
5243 }
5244 _ => {
5245 map.next_value::<::serde_json::Value>()?;
5247 }
5248 }
5249 }
5250 let result = SharingPolicy {
5251 public_sharing_policy: field_public_sharing_policy.and_then(Option::flatten),
5252 team_sharing_policy: field_team_sharing_policy.and_then(Option::flatten),
5253 };
5254 Ok(result)
5255 }
5256
5257 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5258 &self,
5259 s: &mut S::SerializeStruct,
5260 ) -> Result<(), S::Error> {
5261 use serde::ser::SerializeStruct;
5262 if let Some(val) = &self.public_sharing_policy {
5263 s.serialize_field("public_sharing_policy", val)?;
5264 }
5265 if let Some(val) = &self.team_sharing_policy {
5266 s.serialize_field("team_sharing_policy", val)?;
5267 }
5268 Ok(())
5269 }
5270}
5271
5272impl<'de> ::serde::de::Deserialize<'de> for SharingPolicy {
5273 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5274 use serde::de::{MapAccess, Visitor};
5276 struct StructVisitor;
5277 impl<'de> Visitor<'de> for StructVisitor {
5278 type Value = SharingPolicy;
5279 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5280 f.write_str("a SharingPolicy struct")
5281 }
5282 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5283 SharingPolicy::internal_deserialize(map)
5284 }
5285 }
5286 deserializer.deserialize_struct("SharingPolicy", SHARING_POLICY_FIELDS, StructVisitor)
5287 }
5288}
5289
5290impl ::serde::ser::Serialize for SharingPolicy {
5291 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5292 use serde::ser::SerializeStruct;
5294 let mut s = serializer.serialize_struct("SharingPolicy", 2)?;
5295 self.internal_serialize::<S>(&mut s)?;
5296 s.end()
5297 }
5298}
5299
5300#[derive(Debug, Clone, PartialEq, Eq)]
5301pub enum SharingPublicPolicyType {
5302 PeopleWithLinkCanEdit,
5304 PeopleWithLinkCanViewAndComment,
5306 InviteOnly,
5308 Disabled,
5310}
5311
5312impl<'de> ::serde::de::Deserialize<'de> for SharingPublicPolicyType {
5313 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5314 use serde::de::{self, MapAccess, Visitor};
5316 struct EnumVisitor;
5317 impl<'de> Visitor<'de> for EnumVisitor {
5318 type Value = SharingPublicPolicyType;
5319 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5320 f.write_str("a SharingPublicPolicyType structure")
5321 }
5322 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5323 let tag: &str = match map.next_key()? {
5324 Some(".tag") => map.next_value()?,
5325 _ => return Err(de::Error::missing_field(".tag"))
5326 };
5327 let value = match tag {
5328 "people_with_link_can_edit" => SharingPublicPolicyType::PeopleWithLinkCanEdit,
5329 "people_with_link_can_view_and_comment" => SharingPublicPolicyType::PeopleWithLinkCanViewAndComment,
5330 "invite_only" => SharingPublicPolicyType::InviteOnly,
5331 "disabled" => SharingPublicPolicyType::Disabled,
5332 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
5333 };
5334 crate::eat_json_fields(&mut map)?;
5335 Ok(value)
5336 }
5337 }
5338 const VARIANTS: &[&str] = &["people_with_link_can_edit",
5339 "people_with_link_can_view_and_comment",
5340 "invite_only",
5341 "disabled"];
5342 deserializer.deserialize_struct("SharingPublicPolicyType", VARIANTS, EnumVisitor)
5343 }
5344}
5345
5346impl ::serde::ser::Serialize for SharingPublicPolicyType {
5347 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5348 use serde::ser::SerializeStruct;
5350 match self {
5351 SharingPublicPolicyType::PeopleWithLinkCanEdit => {
5352 let mut s = serializer.serialize_struct("SharingPublicPolicyType", 1)?;
5354 s.serialize_field(".tag", "people_with_link_can_edit")?;
5355 s.end()
5356 }
5357 SharingPublicPolicyType::PeopleWithLinkCanViewAndComment => {
5358 let mut s = serializer.serialize_struct("SharingPublicPolicyType", 1)?;
5360 s.serialize_field(".tag", "people_with_link_can_view_and_comment")?;
5361 s.end()
5362 }
5363 SharingPublicPolicyType::InviteOnly => {
5364 let mut s = serializer.serialize_struct("SharingPublicPolicyType", 1)?;
5366 s.serialize_field(".tag", "invite_only")?;
5367 s.end()
5368 }
5369 SharingPublicPolicyType::Disabled => {
5370 let mut s = serializer.serialize_struct("SharingPublicPolicyType", 1)?;
5372 s.serialize_field(".tag", "disabled")?;
5373 s.end()
5374 }
5375 }
5376 }
5377}
5378
5379impl From<SharingTeamPolicyType> for SharingPublicPolicyType {
5381 fn from(parent: SharingTeamPolicyType) -> Self {
5382 match parent {
5383 SharingTeamPolicyType::PeopleWithLinkCanEdit => SharingPublicPolicyType::PeopleWithLinkCanEdit,
5384 SharingTeamPolicyType::PeopleWithLinkCanViewAndComment => SharingPublicPolicyType::PeopleWithLinkCanViewAndComment,
5385 SharingTeamPolicyType::InviteOnly => SharingPublicPolicyType::InviteOnly,
5386 }
5387 }
5388}
5389#[derive(Debug, Clone, PartialEq, Eq)]
5391pub enum SharingTeamPolicyType {
5392 PeopleWithLinkCanEdit,
5394 PeopleWithLinkCanViewAndComment,
5396 InviteOnly,
5398}
5399
5400impl<'de> ::serde::de::Deserialize<'de> for SharingTeamPolicyType {
5401 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5402 use serde::de::{self, MapAccess, Visitor};
5404 struct EnumVisitor;
5405 impl<'de> Visitor<'de> for EnumVisitor {
5406 type Value = SharingTeamPolicyType;
5407 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5408 f.write_str("a SharingTeamPolicyType structure")
5409 }
5410 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5411 let tag: &str = match map.next_key()? {
5412 Some(".tag") => map.next_value()?,
5413 _ => return Err(de::Error::missing_field(".tag"))
5414 };
5415 let value = match tag {
5416 "people_with_link_can_edit" => SharingTeamPolicyType::PeopleWithLinkCanEdit,
5417 "people_with_link_can_view_and_comment" => SharingTeamPolicyType::PeopleWithLinkCanViewAndComment,
5418 "invite_only" => SharingTeamPolicyType::InviteOnly,
5419 _ => return Err(de::Error::unknown_variant(tag, VARIANTS))
5420 };
5421 crate::eat_json_fields(&mut map)?;
5422 Ok(value)
5423 }
5424 }
5425 const VARIANTS: &[&str] = &["people_with_link_can_edit",
5426 "people_with_link_can_view_and_comment",
5427 "invite_only"];
5428 deserializer.deserialize_struct("SharingTeamPolicyType", VARIANTS, EnumVisitor)
5429 }
5430}
5431
5432impl ::serde::ser::Serialize for SharingTeamPolicyType {
5433 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5434 use serde::ser::SerializeStruct;
5436 match self {
5437 SharingTeamPolicyType::PeopleWithLinkCanEdit => {
5438 let mut s = serializer.serialize_struct("SharingTeamPolicyType", 1)?;
5440 s.serialize_field(".tag", "people_with_link_can_edit")?;
5441 s.end()
5442 }
5443 SharingTeamPolicyType::PeopleWithLinkCanViewAndComment => {
5444 let mut s = serializer.serialize_struct("SharingTeamPolicyType", 1)?;
5446 s.serialize_field(".tag", "people_with_link_can_view_and_comment")?;
5447 s.end()
5448 }
5449 SharingTeamPolicyType::InviteOnly => {
5450 let mut s = serializer.serialize_struct("SharingTeamPolicyType", 1)?;
5452 s.serialize_field(".tag", "invite_only")?;
5453 s.end()
5454 }
5455 }
5456 }
5457}
5458
5459#[derive(Debug, Clone, PartialEq, Eq)]
5460#[non_exhaustive] pub struct UserInfoWithPermissionLevel {
5462 pub user: crate::types::sharing::UserInfo,
5464 pub permission_level: PaperDocPermissionLevel,
5466}
5467
5468impl UserInfoWithPermissionLevel {
5469 pub fn new(
5470 user: crate::types::sharing::UserInfo,
5471 permission_level: PaperDocPermissionLevel,
5472 ) -> Self {
5473 UserInfoWithPermissionLevel {
5474 user,
5475 permission_level,
5476 }
5477 }
5478}
5479
5480const USER_INFO_WITH_PERMISSION_LEVEL_FIELDS: &[&str] = &["user",
5481 "permission_level"];
5482impl UserInfoWithPermissionLevel {
5483 pub(crate) fn internal_deserialize<'de, V: ::serde::de::MapAccess<'de>>(
5484 map: V,
5485 ) -> Result<UserInfoWithPermissionLevel, V::Error> {
5486 Self::internal_deserialize_opt(map, false).map(Option::unwrap)
5487 }
5488
5489 pub(crate) fn internal_deserialize_opt<'de, V: ::serde::de::MapAccess<'de>>(
5490 mut map: V,
5491 optional: bool,
5492 ) -> Result<Option<UserInfoWithPermissionLevel>, V::Error> {
5493 let mut field_user = None;
5494 let mut field_permission_level = None;
5495 let mut nothing = true;
5496 while let Some(key) = map.next_key::<&str>()? {
5497 nothing = false;
5498 match key {
5499 "user" => {
5500 if field_user.is_some() {
5501 return Err(::serde::de::Error::duplicate_field("user"));
5502 }
5503 field_user = Some(map.next_value()?);
5504 }
5505 "permission_level" => {
5506 if field_permission_level.is_some() {
5507 return Err(::serde::de::Error::duplicate_field("permission_level"));
5508 }
5509 field_permission_level = Some(map.next_value()?);
5510 }
5511 _ => {
5512 map.next_value::<::serde_json::Value>()?;
5514 }
5515 }
5516 }
5517 if optional && nothing {
5518 return Ok(None);
5519 }
5520 let result = UserInfoWithPermissionLevel {
5521 user: field_user.ok_or_else(|| ::serde::de::Error::missing_field("user"))?,
5522 permission_level: field_permission_level.ok_or_else(|| ::serde::de::Error::missing_field("permission_level"))?,
5523 };
5524 Ok(Some(result))
5525 }
5526
5527 pub(crate) fn internal_serialize<S: ::serde::ser::Serializer>(
5528 &self,
5529 s: &mut S::SerializeStruct,
5530 ) -> Result<(), S::Error> {
5531 use serde::ser::SerializeStruct;
5532 s.serialize_field("user", &self.user)?;
5533 s.serialize_field("permission_level", &self.permission_level)?;
5534 Ok(())
5535 }
5536}
5537
5538impl<'de> ::serde::de::Deserialize<'de> for UserInfoWithPermissionLevel {
5539 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5540 use serde::de::{MapAccess, Visitor};
5542 struct StructVisitor;
5543 impl<'de> Visitor<'de> for StructVisitor {
5544 type Value = UserInfoWithPermissionLevel;
5545 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5546 f.write_str("a UserInfoWithPermissionLevel struct")
5547 }
5548 fn visit_map<V: MapAccess<'de>>(self, map: V) -> Result<Self::Value, V::Error> {
5549 UserInfoWithPermissionLevel::internal_deserialize(map)
5550 }
5551 }
5552 deserializer.deserialize_struct("UserInfoWithPermissionLevel", USER_INFO_WITH_PERMISSION_LEVEL_FIELDS, StructVisitor)
5553 }
5554}
5555
5556impl ::serde::ser::Serialize for UserInfoWithPermissionLevel {
5557 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5558 use serde::ser::SerializeStruct;
5560 let mut s = serializer.serialize_struct("UserInfoWithPermissionLevel", 2)?;
5561 self.internal_serialize::<S>(&mut s)?;
5562 s.end()
5563 }
5564}
5565
5566#[derive(Debug, Clone, PartialEq, Eq)]
5567#[non_exhaustive] pub enum UserOnPaperDocFilter {
5569 Visited,
5571 Shared,
5574 Other,
5577}
5578
5579impl<'de> ::serde::de::Deserialize<'de> for UserOnPaperDocFilter {
5580 fn deserialize<D: ::serde::de::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
5581 use serde::de::{self, MapAccess, Visitor};
5583 struct EnumVisitor;
5584 impl<'de> Visitor<'de> for EnumVisitor {
5585 type Value = UserOnPaperDocFilter;
5586 fn expecting(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5587 f.write_str("a UserOnPaperDocFilter structure")
5588 }
5589 fn visit_map<V: MapAccess<'de>>(self, mut map: V) -> Result<Self::Value, V::Error> {
5590 let tag: &str = match map.next_key()? {
5591 Some(".tag") => map.next_value()?,
5592 _ => return Err(de::Error::missing_field(".tag"))
5593 };
5594 let value = match tag {
5595 "visited" => UserOnPaperDocFilter::Visited,
5596 "shared" => UserOnPaperDocFilter::Shared,
5597 _ => UserOnPaperDocFilter::Other,
5598 };
5599 crate::eat_json_fields(&mut map)?;
5600 Ok(value)
5601 }
5602 }
5603 const VARIANTS: &[&str] = &["visited",
5604 "shared",
5605 "other"];
5606 deserializer.deserialize_struct("UserOnPaperDocFilter", VARIANTS, EnumVisitor)
5607 }
5608}
5609
5610impl ::serde::ser::Serialize for UserOnPaperDocFilter {
5611 fn serialize<S: ::serde::ser::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
5612 use serde::ser::SerializeStruct;
5614 match self {
5615 UserOnPaperDocFilter::Visited => {
5616 let mut s = serializer.serialize_struct("UserOnPaperDocFilter", 1)?;
5618 s.serialize_field(".tag", "visited")?;
5619 s.end()
5620 }
5621 UserOnPaperDocFilter::Shared => {
5622 let mut s = serializer.serialize_struct("UserOnPaperDocFilter", 1)?;
5624 s.serialize_field(".tag", "shared")?;
5625 s.end()
5626 }
5627 UserOnPaperDocFilter::Other => Err(::serde::ser::Error::custom("cannot serialize 'Other' variant"))
5628 }
5629 }
5630}
5631