/* * SPDX-FileCopyrightText: 2020 Stalwart Labs LLC * * SPDX-License-Identifier: Apache-2.0 OR MIT */ use indexmap::IndexMap; use serde::{Deserialize, Serialize}; use super::common::lenient_utc_date; use super::{JmapId, UtcDate}; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Email { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, pub blob_id: JmapId, #[serde( default, deserialize_with = "lenient_utc_date", serialize_with = "time::serde::rfc3339::option::serialize", skip_serializing_if = "Option::is_none" )] pub received_at: Option, pub mailbox_ids: IndexMap, pub keywords: IndexMap, } #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct EmailImport { pub blob_id: JmapId, pub mailbox_ids: IndexMap, #[serde(default, skip_serializing_if = "IndexMap::is_empty")] pub keywords: IndexMap, #[serde( default, with = "time::serde::rfc3339::option", skip_serializing_if = "Option::is_none" )] pub received_at: Option, }