use crate::jmap::{
email::EmailAddress,
methods::{Changes, Get, Set},
objects::{Id, Object},
protocol::Method,
};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Identity {
#[serde(default)]
pub id: Id<Self>,
#[serde(default)]
pub name: String,
pub email: String,
#[serde(default)]
pub reply_to: Option<Vec<EmailAddress>>,
#[serde(default)]
pub bcc: Option<Vec<EmailAddress>>,
#[serde(default)]
pub text_signature: String,
#[serde(default)]
pub html_signature: String,
#[serde(skip_serializing, default)]
pub may_delete: bool,
}
impl Object for Identity {
const NAME: &'static str = "Identity";
}
pub type IdentityGet = Get<Identity>;
impl Method<Identity> for IdentityGet {
const NAME: &'static str = "Identity/get";
}
pub type IdentityChanges = Changes<Identity>;
impl Method<Identity> for IdentityChanges {
const NAME: &'static str = "Identity/changes";
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase", transparent)]
pub struct IdentitySet(pub Set<Identity>);
impl Method<Identity> for IdentitySet {
const NAME: &'static str = "Identity/set";
}