use alloc::string::String;
use serde::{Deserialize, Serialize};
use crate::v1::rest::messages::GmailMessageListVisibility;
pub mod create;
pub mod delete;
pub mod get;
pub mod list;
pub mod patch;
pub mod update;
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct GmailLabel {
#[serde(default, skip_serializing_if = "String::is_empty")]
pub id: String,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub name: String,
#[serde(default, rename = "type", skip_serializing_if = "Option::is_none")]
pub label_type: Option<GmailLabelType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message_list_visibility: Option<GmailMessageListVisibility>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub label_list_visibility: Option<GmailLabelListVisibility>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub messages_total: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub messages_unread: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub threads_total: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub threads_unread: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub color: Option<GmailLabelColor>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct GmailLabelColor {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub text_color: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub background_color: Option<String>,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum GmailLabelListVisibility {
LabelShow,
LabelShowIfUnread,
LabelHide,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum GmailLabelType {
System,
User,
}