drive_v3/objects/
about.rs1use std::fmt;
2use serde::{Serialize, Deserialize};
3
4use super::{StorageQuota, DriveTheme, User};
5
6#[derive(Default, Debug, Clone, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct About {
26 #[serde(skip_serializing_if = "Option::is_none")]
28 pub kind: Option<String>,
29
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub storage_quota: Option<StorageQuota>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
36 pub drive_themes: Option<Vec<DriveTheme>>,
37
38 #[serde(skip_serializing_if = "Option::is_none")]
40 pub can_create_drives: Option<bool>,
41
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub import_formats: Option< serde_json::Map<String, serde_json::Value> >,
45
46 #[serde(skip_serializing_if = "Option::is_none")]
48 pub export_formats: Option< serde_json::Map<String, serde_json::Value> >,
49
50 #[serde(skip_serializing_if = "Option::is_none")]
52 pub app_installed: Option<bool>,
53
54 #[serde(skip_serializing_if = "Option::is_none")]
56 pub user: Option<User>,
57
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub folder_color_palette: Option<Vec<String>>,
61
62 #[serde(skip_serializing_if = "Option::is_none")]
64 pub max_import_sizes: Option< serde_json::Map<String, serde_json::Value> >,
65
66 #[serde(skip_serializing_if = "Option::is_none")]
68 pub max_upload_size: Option<String>,
69}
70
71impl fmt::Display for About {
72 fn fmt( &self, f: &mut fmt::Formatter<'_> ) -> fmt::Result {
73 let json = serde_json::to_string_pretty(&self)
74 .unwrap_or( format!("unable to parse JSON, this is the debug view:\n{:#?}", self) );
75
76 write!(f, "{}", json)
77 }
78}
79
80impl About {
81 pub fn new() -> Self {
83 Self { ..Default::default() }
84 }
85}