io_gmail/v1/rest/
labels.rs1use alloc::string::String;
7
8use serde::{Deserialize, Serialize};
9
10use crate::v1::rest::messages::GmailMessageListVisibility;
11
12pub mod create;
13pub mod delete;
14pub mod get;
15pub mod list;
16pub mod patch;
17pub mod update;
18
19#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
24#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
25#[serde(rename_all = "camelCase")]
26pub struct GmailLabel {
27 #[serde(default, skip_serializing_if = "String::is_empty")]
29 pub id: String,
30 #[serde(default, skip_serializing_if = "String::is_empty")]
32 pub name: String,
33 #[serde(default, rename = "type", skip_serializing_if = "Option::is_none")]
35 pub label_type: Option<GmailLabelType>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub message_list_visibility: Option<GmailMessageListVisibility>,
39 #[serde(default, skip_serializing_if = "Option::is_none")]
41 pub label_list_visibility: Option<GmailLabelListVisibility>,
42 #[serde(default, skip_serializing_if = "Option::is_none")]
44 pub messages_total: Option<u64>,
45 #[serde(default, skip_serializing_if = "Option::is_none")]
47 pub messages_unread: Option<u64>,
48 #[serde(default, skip_serializing_if = "Option::is_none")]
50 pub threads_total: Option<u64>,
51 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub threads_unread: Option<u64>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
56 pub color: Option<GmailLabelColor>,
57}
58
59#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
61#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
62#[serde(rename_all = "camelCase")]
63pub struct GmailLabelColor {
64 #[serde(default, skip_serializing_if = "Option::is_none")]
66 pub text_color: Option<String>,
67 #[serde(default, skip_serializing_if = "Option::is_none")]
69 pub background_color: Option<String>,
70}
71
72#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
74#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
75#[serde(rename_all = "camelCase")]
76pub enum GmailLabelListVisibility {
77 LabelShow,
79 LabelShowIfUnread,
81 LabelHide,
83}
84
85#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
87#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
88#[serde(rename_all = "camelCase")]
89pub enum GmailLabelType {
90 System,
92 User,
94}