Everything clients, users and operators meet now carries the fork's name, with no aliases (SPEC.md §2.4, changed here from "protocol identifiers stay"): - JMAP: upstream's registry capability is urn:inbuxa:jmap:registry, beside the fork's own urn:inbuxa:jmap. - WebDAV lock and sync tokens are urn:inbuxa:dav*; clients resync once. - Sieve: vnd.inbuxa.while and vnd.inbuxa.expressions. sieve-rs spells these into its compiler, so it's vendored (vendor/sieve-rs, 0.7.3) and patched in; a unit test fails if Cargo.lock ever moves past the vendored copy. The trusted runtime now names itself too, rather than answering sieve-rs's default. - The web interface's OAuth client is inbuxa-webui. On every start the old stalwart-webui client is removed and any application naming it is moved over. - The spam filter's blobs are INBUXA_SPAM_*; every start moves any left under the old keys, so a trained model survives. - SQL stores and log files default to inbuxa, in the code and in the schema served to the admin (checksum regenerated). - Settings are INBUXA_* only. A STALWART_* variable that's set where its INBUXA_* one isn't stops the server at startup, naming it. - The version-upgrade messages link docs.inbuxa.org's migration page, and the OpenAPI description, smtp crate metadata and web-push test fixtures lose the name. Kept on purpose, allowlisted with reasons: the OAuth key-derivation contexts (renaming them would end every session and invalidate every sealed client id) and the hashed application prefix. Also fixes a latent start-up failure: ensure_client updated an existing first-party client with a revision of 0, which the registry's assertion never matches, so adding a redirect URI or changing the webmail secret failed start-up. And the principal session test now expects legacyProtocols (C-1, added 2026-09-21), which it had missed. Tested: the server builds without warnings; common's 106 unit tests, including the vendoring check; a new integration test for the two start-up migrations; and the webdav, jmap, imap and SMTP Sieve suites.
14558 lines
571 KiB
Rust
14558 lines
571 KiB
Rust
/*
|
|
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
|
*
|
|
* Modified by Coffey Labs in 2026 for INBUXA.
|
|
*/
|
|
|
|
// This file is auto-generated. Do not edit directly.
|
|
|
|
use crate::schema::prelude::*;
|
|
|
|
impl EnumImpl for AccountType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"User" => AccountType::User,
|
|
b"Group" => AccountType::Group,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AccountType::User => "User",
|
|
AccountType::Group => "Group",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AccountType::User),
|
|
1 => Some(AccountType::Group),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for AccountType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AccountType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for AcmeChallengeType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"TlsAlpn01" => AcmeChallengeType::TlsAlpn01,
|
|
b"DnsPersist01" => AcmeChallengeType::DnsPersist01,
|
|
b"Dns01" => AcmeChallengeType::Dns01,
|
|
b"Http01" => AcmeChallengeType::Http01,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AcmeChallengeType::TlsAlpn01 => "TlsAlpn01",
|
|
AcmeChallengeType::DnsPersist01 => "DnsPersist01",
|
|
AcmeChallengeType::Dns01 => "Dns01",
|
|
AcmeChallengeType::Http01 => "Http01",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AcmeChallengeType::TlsAlpn01),
|
|
1 => Some(AcmeChallengeType::DnsPersist01),
|
|
2 => Some(AcmeChallengeType::Dns01),
|
|
3 => Some(AcmeChallengeType::Http01),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for AcmeChallengeType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AcmeChallengeType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for AcmeRenewBefore {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"R12" => AcmeRenewBefore::R12,
|
|
b"R23" => AcmeRenewBefore::R23,
|
|
b"R34" => AcmeRenewBefore::R34,
|
|
b"R45" => AcmeRenewBefore::R45,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AcmeRenewBefore::R12 => "R12",
|
|
AcmeRenewBefore::R23 => "R23",
|
|
AcmeRenewBefore::R34 => "R34",
|
|
AcmeRenewBefore::R45 => "R45",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AcmeRenewBefore::R12),
|
|
1 => Some(AcmeRenewBefore::R23),
|
|
2 => Some(AcmeRenewBefore::R34),
|
|
3 => Some(AcmeRenewBefore::R45),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for AcmeRenewBefore {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AcmeRenewBefore {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ActionType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"ReloadSettings" => ActionType::ReloadSettings,
|
|
b"ReloadTlsCertificates" => ActionType::ReloadTlsCertificates,
|
|
b"ReloadLookupStores" => ActionType::ReloadLookupStores,
|
|
b"ReloadBlockedIps" => ActionType::ReloadBlockedIps,
|
|
b"UpdateApps" => ActionType::UpdateApps,
|
|
b"TroubleshootDmarc" => ActionType::TroubleshootDmarc,
|
|
b"ClassifySpam" => ActionType::ClassifySpam,
|
|
b"InvalidateCaches" => ActionType::InvalidateCaches,
|
|
b"InvalidateNegativeCaches" => ActionType::InvalidateNegativeCaches,
|
|
b"PauseMtaQueue" => ActionType::PauseMtaQueue,
|
|
b"ResumeMtaQueue" => ActionType::ResumeMtaQueue,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ActionType::ReloadSettings => "ReloadSettings",
|
|
ActionType::ReloadTlsCertificates => "ReloadTlsCertificates",
|
|
ActionType::ReloadLookupStores => "ReloadLookupStores",
|
|
ActionType::ReloadBlockedIps => "ReloadBlockedIps",
|
|
ActionType::UpdateApps => "UpdateApps",
|
|
ActionType::TroubleshootDmarc => "TroubleshootDmarc",
|
|
ActionType::ClassifySpam => "ClassifySpam",
|
|
ActionType::InvalidateCaches => "InvalidateCaches",
|
|
ActionType::InvalidateNegativeCaches => "InvalidateNegativeCaches",
|
|
ActionType::PauseMtaQueue => "PauseMtaQueue",
|
|
ActionType::ResumeMtaQueue => "ResumeMtaQueue",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ActionType::ReloadSettings),
|
|
1 => Some(ActionType::ReloadTlsCertificates),
|
|
2 => Some(ActionType::ReloadLookupStores),
|
|
3 => Some(ActionType::ReloadBlockedIps),
|
|
4 => Some(ActionType::UpdateApps),
|
|
5 => Some(ActionType::TroubleshootDmarc),
|
|
6 => Some(ActionType::ClassifySpam),
|
|
7 => Some(ActionType::InvalidateCaches),
|
|
8 => Some(ActionType::InvalidateNegativeCaches),
|
|
9 => Some(ActionType::PauseMtaQueue),
|
|
10 => Some(ActionType::ResumeMtaQueue),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 11;
|
|
}
|
|
|
|
impl serde::Serialize for ActionType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ActionType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for AiModelType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Chat" => AiModelType::Chat,
|
|
b"Text" => AiModelType::Text,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AiModelType::Chat => "Chat",
|
|
AiModelType::Text => "Text",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AiModelType::Chat),
|
|
1 => Some(AiModelType::Text),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for AiModelType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AiModelType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for AlertEmailType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => AlertEmailType::Disabled,
|
|
b"Enabled" => AlertEmailType::Enabled,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AlertEmailType::Disabled => "Disabled",
|
|
AlertEmailType::Enabled => "Enabled",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AlertEmailType::Disabled),
|
|
1 => Some(AlertEmailType::Enabled),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for AlertEmailType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AlertEmailType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for AlertEventType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => AlertEventType::Disabled,
|
|
b"Enabled" => AlertEventType::Enabled,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AlertEventType::Disabled => "Disabled",
|
|
AlertEventType::Enabled => "Enabled",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AlertEventType::Disabled),
|
|
1 => Some(AlertEventType::Enabled),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for AlertEventType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AlertEventType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ArchivedItemStatus {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"archived" => ArchivedItemStatus::Archived,
|
|
b"requestRestore" => ArchivedItemStatus::RequestRestore,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ArchivedItemStatus::Archived => "archived",
|
|
ArchivedItemStatus::RequestRestore => "requestRestore",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ArchivedItemStatus::Archived),
|
|
1 => Some(ArchivedItemStatus::RequestRestore),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for ArchivedItemStatus {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ArchivedItemStatus {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ArchivedItemType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Email" => ArchivedItemType::Email,
|
|
b"FileNode" => ArchivedItemType::FileNode,
|
|
b"CalendarEvent" => ArchivedItemType::CalendarEvent,
|
|
b"ContactCard" => ArchivedItemType::ContactCard,
|
|
b"SieveScript" => ArchivedItemType::SieveScript,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ArchivedItemType::Email => "Email",
|
|
ArchivedItemType::FileNode => "FileNode",
|
|
ArchivedItemType::CalendarEvent => "CalendarEvent",
|
|
ArchivedItemType::ContactCard => "ContactCard",
|
|
ArchivedItemType::SieveScript => "SieveScript",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ArchivedItemType::Email),
|
|
1 => Some(ArchivedItemType::FileNode),
|
|
2 => Some(ArchivedItemType::CalendarEvent),
|
|
3 => Some(ArchivedItemType::ContactCard),
|
|
4 => Some(ArchivedItemType::SieveScript),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for ArchivedItemType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ArchivedItemType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ArfAuthFailureType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"adsp" => ArfAuthFailureType::Adsp,
|
|
b"bodyHash" => ArfAuthFailureType::BodyHash,
|
|
b"revoked" => ArfAuthFailureType::Revoked,
|
|
b"signature" => ArfAuthFailureType::Signature,
|
|
b"spf" => ArfAuthFailureType::Spf,
|
|
b"dmarc" => ArfAuthFailureType::Dmarc,
|
|
b"unspecified" => ArfAuthFailureType::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ArfAuthFailureType::Adsp => "adsp",
|
|
ArfAuthFailureType::BodyHash => "bodyHash",
|
|
ArfAuthFailureType::Revoked => "revoked",
|
|
ArfAuthFailureType::Signature => "signature",
|
|
ArfAuthFailureType::Spf => "spf",
|
|
ArfAuthFailureType::Dmarc => "dmarc",
|
|
ArfAuthFailureType::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ArfAuthFailureType::Adsp),
|
|
1 => Some(ArfAuthFailureType::BodyHash),
|
|
2 => Some(ArfAuthFailureType::Revoked),
|
|
3 => Some(ArfAuthFailureType::Signature),
|
|
4 => Some(ArfAuthFailureType::Spf),
|
|
5 => Some(ArfAuthFailureType::Dmarc),
|
|
6 => Some(ArfAuthFailureType::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for ArfAuthFailureType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ArfAuthFailureType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ArfDeliveryResult {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"delivered" => ArfDeliveryResult::Delivered,
|
|
b"spam" => ArfDeliveryResult::Spam,
|
|
b"policy" => ArfDeliveryResult::Policy,
|
|
b"reject" => ArfDeliveryResult::Reject,
|
|
b"other" => ArfDeliveryResult::Other,
|
|
b"unspecified" => ArfDeliveryResult::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ArfDeliveryResult::Delivered => "delivered",
|
|
ArfDeliveryResult::Spam => "spam",
|
|
ArfDeliveryResult::Policy => "policy",
|
|
ArfDeliveryResult::Reject => "reject",
|
|
ArfDeliveryResult::Other => "other",
|
|
ArfDeliveryResult::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ArfDeliveryResult::Delivered),
|
|
1 => Some(ArfDeliveryResult::Spam),
|
|
2 => Some(ArfDeliveryResult::Policy),
|
|
3 => Some(ArfDeliveryResult::Reject),
|
|
4 => Some(ArfDeliveryResult::Other),
|
|
5 => Some(ArfDeliveryResult::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for ArfDeliveryResult {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ArfDeliveryResult {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ArfFeedbackType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"abuse" => ArfFeedbackType::Abuse,
|
|
b"authFailure" => ArfFeedbackType::AuthFailure,
|
|
b"fraud" => ArfFeedbackType::Fraud,
|
|
b"notSpam" => ArfFeedbackType::NotSpam,
|
|
b"virus" => ArfFeedbackType::Virus,
|
|
b"other" => ArfFeedbackType::Other,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ArfFeedbackType::Abuse => "abuse",
|
|
ArfFeedbackType::AuthFailure => "authFailure",
|
|
ArfFeedbackType::Fraud => "fraud",
|
|
ArfFeedbackType::NotSpam => "notSpam",
|
|
ArfFeedbackType::Virus => "virus",
|
|
ArfFeedbackType::Other => "other",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ArfFeedbackType::Abuse),
|
|
1 => Some(ArfFeedbackType::AuthFailure),
|
|
2 => Some(ArfFeedbackType::Fraud),
|
|
3 => Some(ArfFeedbackType::NotSpam),
|
|
4 => Some(ArfFeedbackType::Virus),
|
|
5 => Some(ArfFeedbackType::Other),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for ArfFeedbackType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ArfFeedbackType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ArfIdentityAlignment {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"none" => ArfIdentityAlignment::None,
|
|
b"spf" => ArfIdentityAlignment::Spf,
|
|
b"dkim" => ArfIdentityAlignment::Dkim,
|
|
b"dkimSpf" => ArfIdentityAlignment::DkimSpf,
|
|
b"unspecified" => ArfIdentityAlignment::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ArfIdentityAlignment::None => "none",
|
|
ArfIdentityAlignment::Spf => "spf",
|
|
ArfIdentityAlignment::Dkim => "dkim",
|
|
ArfIdentityAlignment::DkimSpf => "dkimSpf",
|
|
ArfIdentityAlignment::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ArfIdentityAlignment::None),
|
|
1 => Some(ArfIdentityAlignment::Spf),
|
|
2 => Some(ArfIdentityAlignment::Dkim),
|
|
3 => Some(ArfIdentityAlignment::DkimSpf),
|
|
4 => Some(ArfIdentityAlignment::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for ArfIdentityAlignment {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ArfIdentityAlignment {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for AsnType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => AsnType::Disabled,
|
|
b"Resource" => AsnType::Resource,
|
|
b"Dns" => AsnType::Dns,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AsnType::Disabled => "Disabled",
|
|
AsnType::Resource => "Resource",
|
|
AsnType::Dns => "Dns",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AsnType::Disabled),
|
|
1 => Some(AsnType::Resource),
|
|
2 => Some(AsnType::Dns),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for AsnType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AsnType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for AzureEnvironment {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"public" => AzureEnvironment::Public,
|
|
b"china" => AzureEnvironment::China,
|
|
b"us-government" => AzureEnvironment::UsGovernment,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
AzureEnvironment::Public => "public",
|
|
AzureEnvironment::China => "china",
|
|
AzureEnvironment::UsGovernment => "us-government",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(AzureEnvironment::Public),
|
|
1 => Some(AzureEnvironment::China),
|
|
2 => Some(AzureEnvironment::UsGovernment),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for AzureEnvironment {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for AzureEnvironment {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for BlobStoreBaseType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"S3" => BlobStoreBaseType::S3,
|
|
b"Azure" => BlobStoreBaseType::Azure,
|
|
b"FileSystem" => BlobStoreBaseType::FileSystem,
|
|
b"FoundationDb" => BlobStoreBaseType::FoundationDb,
|
|
b"PostgreSql" => BlobStoreBaseType::PostgreSql,
|
|
b"MySql" => BlobStoreBaseType::MySql,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
BlobStoreBaseType::S3 => "S3",
|
|
BlobStoreBaseType::Azure => "Azure",
|
|
BlobStoreBaseType::FileSystem => "FileSystem",
|
|
BlobStoreBaseType::FoundationDb => "FoundationDb",
|
|
BlobStoreBaseType::PostgreSql => "PostgreSql",
|
|
BlobStoreBaseType::MySql => "MySql",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(BlobStoreBaseType::S3),
|
|
1 => Some(BlobStoreBaseType::Azure),
|
|
2 => Some(BlobStoreBaseType::FileSystem),
|
|
3 => Some(BlobStoreBaseType::FoundationDb),
|
|
4 => Some(BlobStoreBaseType::PostgreSql),
|
|
5 => Some(BlobStoreBaseType::MySql),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for BlobStoreBaseType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for BlobStoreBaseType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for BlobStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Default" => BlobStoreType::Default,
|
|
b"Sharded" => BlobStoreType::Sharded,
|
|
b"S3" => BlobStoreType::S3,
|
|
b"Azure" => BlobStoreType::Azure,
|
|
b"FileSystem" => BlobStoreType::FileSystem,
|
|
b"FoundationDb" => BlobStoreType::FoundationDb,
|
|
b"PostgreSql" => BlobStoreType::PostgreSql,
|
|
b"MySql" => BlobStoreType::MySql,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
BlobStoreType::Default => "Default",
|
|
BlobStoreType::Sharded => "Sharded",
|
|
BlobStoreType::S3 => "S3",
|
|
BlobStoreType::Azure => "Azure",
|
|
BlobStoreType::FileSystem => "FileSystem",
|
|
BlobStoreType::FoundationDb => "FoundationDb",
|
|
BlobStoreType::PostgreSql => "PostgreSql",
|
|
BlobStoreType::MySql => "MySql",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(BlobStoreType::Default),
|
|
1 => Some(BlobStoreType::Sharded),
|
|
2 => Some(BlobStoreType::S3),
|
|
3 => Some(BlobStoreType::Azure),
|
|
4 => Some(BlobStoreType::FileSystem),
|
|
5 => Some(BlobStoreType::FoundationDb),
|
|
6 => Some(BlobStoreType::PostgreSql),
|
|
7 => Some(BlobStoreType::MySql),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 8;
|
|
}
|
|
|
|
impl serde::Serialize for BlobStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for BlobStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for BlockReason {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"rcptToFailure" => BlockReason::RcptToFailure,
|
|
b"authFailure" => BlockReason::AuthFailure,
|
|
b"loitering" => BlockReason::Loitering,
|
|
b"portScanning" => BlockReason::PortScanning,
|
|
b"manual" => BlockReason::Manual,
|
|
b"other" => BlockReason::Other,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
BlockReason::RcptToFailure => "rcptToFailure",
|
|
BlockReason::AuthFailure => "authFailure",
|
|
BlockReason::Loitering => "loitering",
|
|
BlockReason::PortScanning => "portScanning",
|
|
BlockReason::Manual => "manual",
|
|
BlockReason::Other => "other",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(BlockReason::RcptToFailure),
|
|
1 => Some(BlockReason::AuthFailure),
|
|
2 => Some(BlockReason::Loitering),
|
|
3 => Some(BlockReason::PortScanning),
|
|
4 => Some(BlockReason::Manual),
|
|
5 => Some(BlockReason::Other),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for BlockReason {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for BlockReason {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for CertificateManagementType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Manual" => CertificateManagementType::Manual,
|
|
b"Automatic" => CertificateManagementType::Automatic,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
CertificateManagementType::Manual => "Manual",
|
|
CertificateManagementType::Automatic => "Automatic",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(CertificateManagementType::Manual),
|
|
1 => Some(CertificateManagementType::Automatic),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for CertificateManagementType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for CertificateManagementType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ClusterListenerGroupType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"EnableAll" => ClusterListenerGroupType::EnableAll,
|
|
b"DisableAll" => ClusterListenerGroupType::DisableAll,
|
|
b"EnableSome" => ClusterListenerGroupType::EnableSome,
|
|
b"DisableSome" => ClusterListenerGroupType::DisableSome,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ClusterListenerGroupType::EnableAll => "EnableAll",
|
|
ClusterListenerGroupType::DisableAll => "DisableAll",
|
|
ClusterListenerGroupType::EnableSome => "EnableSome",
|
|
ClusterListenerGroupType::DisableSome => "DisableSome",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ClusterListenerGroupType::EnableAll),
|
|
1 => Some(ClusterListenerGroupType::DisableAll),
|
|
2 => Some(ClusterListenerGroupType::EnableSome),
|
|
3 => Some(ClusterListenerGroupType::DisableSome),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for ClusterListenerGroupType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ClusterListenerGroupType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ClusterNodeStatus {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"active" => ClusterNodeStatus::Active,
|
|
b"stale" => ClusterNodeStatus::Stale,
|
|
b"inactive" => ClusterNodeStatus::Inactive,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ClusterNodeStatus::Active => "active",
|
|
ClusterNodeStatus::Stale => "stale",
|
|
ClusterNodeStatus::Inactive => "inactive",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ClusterNodeStatus::Active),
|
|
1 => Some(ClusterNodeStatus::Stale),
|
|
2 => Some(ClusterNodeStatus::Inactive),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for ClusterNodeStatus {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ClusterNodeStatus {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ClusterTaskGroupType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"EnableAll" => ClusterTaskGroupType::EnableAll,
|
|
b"DisableAll" => ClusterTaskGroupType::DisableAll,
|
|
b"EnableSome" => ClusterTaskGroupType::EnableSome,
|
|
b"DisableSome" => ClusterTaskGroupType::DisableSome,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ClusterTaskGroupType::EnableAll => "EnableAll",
|
|
ClusterTaskGroupType::DisableAll => "DisableAll",
|
|
ClusterTaskGroupType::EnableSome => "EnableSome",
|
|
ClusterTaskGroupType::DisableSome => "DisableSome",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ClusterTaskGroupType::EnableAll),
|
|
1 => Some(ClusterTaskGroupType::DisableAll),
|
|
2 => Some(ClusterTaskGroupType::EnableSome),
|
|
3 => Some(ClusterTaskGroupType::DisableSome),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for ClusterTaskGroupType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ClusterTaskGroupType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ClusterTaskType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"storeMaintenance" => ClusterTaskType::StoreMaintenance,
|
|
b"accountMaintenance" => ClusterTaskType::AccountMaintenance,
|
|
b"metricsCalculate" => ClusterTaskType::MetricsCalculate,
|
|
b"metricsPush" => ClusterTaskType::MetricsPush,
|
|
b"pushNotifications" => ClusterTaskType::PushNotifications,
|
|
b"searchIndexing" => ClusterTaskType::SearchIndexing,
|
|
b"spamClassifierTraining" => ClusterTaskType::SpamClassifierTraining,
|
|
b"outboundMta" => ClusterTaskType::OutboundMta,
|
|
b"taskQueueProcessing" => ClusterTaskType::TaskQueueProcessing,
|
|
b"taskScheduler" => ClusterTaskType::TaskScheduler,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ClusterTaskType::StoreMaintenance => "storeMaintenance",
|
|
ClusterTaskType::AccountMaintenance => "accountMaintenance",
|
|
ClusterTaskType::MetricsCalculate => "metricsCalculate",
|
|
ClusterTaskType::MetricsPush => "metricsPush",
|
|
ClusterTaskType::PushNotifications => "pushNotifications",
|
|
ClusterTaskType::SearchIndexing => "searchIndexing",
|
|
ClusterTaskType::SpamClassifierTraining => "spamClassifierTraining",
|
|
ClusterTaskType::OutboundMta => "outboundMta",
|
|
ClusterTaskType::TaskQueueProcessing => "taskQueueProcessing",
|
|
ClusterTaskType::TaskScheduler => "taskScheduler",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ClusterTaskType::StoreMaintenance),
|
|
1 => Some(ClusterTaskType::AccountMaintenance),
|
|
2 => Some(ClusterTaskType::MetricsCalculate),
|
|
3 => Some(ClusterTaskType::MetricsPush),
|
|
4 => Some(ClusterTaskType::PushNotifications),
|
|
5 => Some(ClusterTaskType::SearchIndexing),
|
|
6 => Some(ClusterTaskType::SpamClassifierTraining),
|
|
7 => Some(ClusterTaskType::OutboundMta),
|
|
8 => Some(ClusterTaskType::TaskQueueProcessing),
|
|
9 => Some(ClusterTaskType::TaskScheduler),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 10;
|
|
}
|
|
|
|
impl serde::Serialize for ClusterTaskType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ClusterTaskType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for CompressionAlgo {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"lz4" => CompressionAlgo::Lz4,
|
|
b"none" => CompressionAlgo::None,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
CompressionAlgo::Lz4 => "lz4",
|
|
CompressionAlgo::None => "none",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(CompressionAlgo::Lz4),
|
|
1 => Some(CompressionAlgo::None),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for CompressionAlgo {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for CompressionAlgo {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for CoordinatorType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => CoordinatorType::Disabled,
|
|
b"Default" => CoordinatorType::Default,
|
|
b"Kafka" => CoordinatorType::Kafka,
|
|
b"Nats" => CoordinatorType::Nats,
|
|
b"Zenoh" => CoordinatorType::Zenoh,
|
|
b"Redis" => CoordinatorType::Redis,
|
|
b"RedisCluster" => CoordinatorType::RedisCluster,
|
|
b"RedisSentinel" => CoordinatorType::RedisSentinel,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
CoordinatorType::Disabled => "Disabled",
|
|
CoordinatorType::Default => "Default",
|
|
CoordinatorType::Kafka => "Kafka",
|
|
CoordinatorType::Nats => "Nats",
|
|
CoordinatorType::Zenoh => "Zenoh",
|
|
CoordinatorType::Redis => "Redis",
|
|
CoordinatorType::RedisCluster => "RedisCluster",
|
|
CoordinatorType::RedisSentinel => "RedisSentinel",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(CoordinatorType::Disabled),
|
|
1 => Some(CoordinatorType::Default),
|
|
2 => Some(CoordinatorType::Kafka),
|
|
3 => Some(CoordinatorType::Nats),
|
|
4 => Some(CoordinatorType::Zenoh),
|
|
5 => Some(CoordinatorType::Redis),
|
|
6 => Some(CoordinatorType::RedisCluster),
|
|
7 => Some(CoordinatorType::RedisSentinel),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 8;
|
|
}
|
|
|
|
impl serde::Serialize for CoordinatorType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for CoordinatorType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for CredentialPermissionsType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Inherit" => CredentialPermissionsType::Inherit,
|
|
b"Disable" => CredentialPermissionsType::Disable,
|
|
b"Replace" => CredentialPermissionsType::Replace,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
CredentialPermissionsType::Inherit => "Inherit",
|
|
CredentialPermissionsType::Disable => "Disable",
|
|
CredentialPermissionsType::Replace => "Replace",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(CredentialPermissionsType::Inherit),
|
|
1 => Some(CredentialPermissionsType::Disable),
|
|
2 => Some(CredentialPermissionsType::Replace),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for CredentialPermissionsType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for CredentialPermissionsType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for CredentialType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Password" => CredentialType::Password,
|
|
b"AppPassword" => CredentialType::AppPassword,
|
|
b"ApiKey" => CredentialType::ApiKey,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
CredentialType::Password => "Password",
|
|
CredentialType::AppPassword => "AppPassword",
|
|
CredentialType::ApiKey => "ApiKey",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(CredentialType::Password),
|
|
1 => Some(CredentialType::AppPassword),
|
|
2 => Some(CredentialType::ApiKey),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for CredentialType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for CredentialType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for CronType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Daily" => CronType::Daily,
|
|
b"Weekly" => CronType::Weekly,
|
|
b"Hourly" => CronType::Hourly,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
CronType::Daily => "Daily",
|
|
CronType::Weekly => "Weekly",
|
|
CronType::Hourly => "Hourly",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(CronType::Daily),
|
|
1 => Some(CronType::Weekly),
|
|
2 => Some(CronType::Hourly),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for CronType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for CronType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DataStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"RocksDb" => DataStoreType::RocksDb,
|
|
b"Sqlite" => DataStoreType::Sqlite,
|
|
b"FoundationDb" => DataStoreType::FoundationDb,
|
|
b"PostgreSql" => DataStoreType::PostgreSql,
|
|
b"MySql" => DataStoreType::MySql,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DataStoreType::RocksDb => "RocksDb",
|
|
DataStoreType::Sqlite => "Sqlite",
|
|
DataStoreType::FoundationDb => "FoundationDb",
|
|
DataStoreType::PostgreSql => "PostgreSql",
|
|
DataStoreType::MySql => "MySql",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DataStoreType::RocksDb),
|
|
1 => Some(DataStoreType::Sqlite),
|
|
2 => Some(DataStoreType::FoundationDb),
|
|
3 => Some(DataStoreType::PostgreSql),
|
|
4 => Some(DataStoreType::MySql),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for DataStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DataStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DeliveryErrorType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"dnsError" => DeliveryErrorType::DnsError,
|
|
b"unexpectedResponse" => DeliveryErrorType::UnexpectedResponse,
|
|
b"connectionError" => DeliveryErrorType::ConnectionError,
|
|
b"tlsError" => DeliveryErrorType::TlsError,
|
|
b"daneError" => DeliveryErrorType::DaneError,
|
|
b"mtaStsError" => DeliveryErrorType::MtaStsError,
|
|
b"rateLimited" => DeliveryErrorType::RateLimited,
|
|
b"concurrencyLimited" => DeliveryErrorType::ConcurrencyLimited,
|
|
b"io" => DeliveryErrorType::Io,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DeliveryErrorType::DnsError => "dnsError",
|
|
DeliveryErrorType::UnexpectedResponse => "unexpectedResponse",
|
|
DeliveryErrorType::ConnectionError => "connectionError",
|
|
DeliveryErrorType::TlsError => "tlsError",
|
|
DeliveryErrorType::DaneError => "daneError",
|
|
DeliveryErrorType::MtaStsError => "mtaStsError",
|
|
DeliveryErrorType::RateLimited => "rateLimited",
|
|
DeliveryErrorType::ConcurrencyLimited => "concurrencyLimited",
|
|
DeliveryErrorType::Io => "io",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DeliveryErrorType::DnsError),
|
|
1 => Some(DeliveryErrorType::UnexpectedResponse),
|
|
2 => Some(DeliveryErrorType::ConnectionError),
|
|
3 => Some(DeliveryErrorType::TlsError),
|
|
4 => Some(DeliveryErrorType::DaneError),
|
|
5 => Some(DeliveryErrorType::MtaStsError),
|
|
6 => Some(DeliveryErrorType::RateLimited),
|
|
7 => Some(DeliveryErrorType::ConcurrencyLimited),
|
|
8 => Some(DeliveryErrorType::Io),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 9;
|
|
}
|
|
|
|
impl serde::Serialize for DeliveryErrorType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DeliveryErrorType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DirectoryBootstrapType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Internal" => DirectoryBootstrapType::Internal,
|
|
b"Ldap" => DirectoryBootstrapType::Ldap,
|
|
b"Sql" => DirectoryBootstrapType::Sql,
|
|
b"Oidc" => DirectoryBootstrapType::Oidc,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DirectoryBootstrapType::Internal => "Internal",
|
|
DirectoryBootstrapType::Ldap => "Ldap",
|
|
DirectoryBootstrapType::Sql => "Sql",
|
|
DirectoryBootstrapType::Oidc => "Oidc",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DirectoryBootstrapType::Internal),
|
|
1 => Some(DirectoryBootstrapType::Ldap),
|
|
2 => Some(DirectoryBootstrapType::Sql),
|
|
3 => Some(DirectoryBootstrapType::Oidc),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for DirectoryBootstrapType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DirectoryBootstrapType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DirectoryType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Ldap" => DirectoryType::Ldap,
|
|
b"Sql" => DirectoryType::Sql,
|
|
b"Oidc" => DirectoryType::Oidc,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DirectoryType::Ldap => "Ldap",
|
|
DirectoryType::Sql => "Sql",
|
|
DirectoryType::Oidc => "Oidc",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DirectoryType::Ldap),
|
|
1 => Some(DirectoryType::Sql),
|
|
2 => Some(DirectoryType::Oidc),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for DirectoryType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DirectoryType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for Dkim2Flag {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"donotmodify" => Dkim2Flag::Donotmodify,
|
|
b"donotexplode" => Dkim2Flag::Donotexplode,
|
|
b"feedback" => Dkim2Flag::Feedback,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
Dkim2Flag::Donotmodify => "donotmodify",
|
|
Dkim2Flag::Donotexplode => "donotexplode",
|
|
Dkim2Flag::Feedback => "feedback",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(Dkim2Flag::Donotmodify),
|
|
1 => Some(Dkim2Flag::Donotexplode),
|
|
2 => Some(Dkim2Flag::Feedback),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for Dkim2Flag {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for Dkim2Flag {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DkimAuthResult {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"none" => DkimAuthResult::None,
|
|
b"pass" => DkimAuthResult::Pass,
|
|
b"fail" => DkimAuthResult::Fail,
|
|
b"policy" => DkimAuthResult::Policy,
|
|
b"neutral" => DkimAuthResult::Neutral,
|
|
b"tempError" => DkimAuthResult::TempError,
|
|
b"permError" => DkimAuthResult::PermError,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DkimAuthResult::None => "none",
|
|
DkimAuthResult::Pass => "pass",
|
|
DkimAuthResult::Fail => "fail",
|
|
DkimAuthResult::Policy => "policy",
|
|
DkimAuthResult::Neutral => "neutral",
|
|
DkimAuthResult::TempError => "tempError",
|
|
DkimAuthResult::PermError => "permError",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DkimAuthResult::None),
|
|
1 => Some(DkimAuthResult::Pass),
|
|
2 => Some(DkimAuthResult::Fail),
|
|
3 => Some(DkimAuthResult::Policy),
|
|
4 => Some(DkimAuthResult::Neutral),
|
|
5 => Some(DkimAuthResult::TempError),
|
|
6 => Some(DkimAuthResult::PermError),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for DkimAuthResult {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DkimAuthResult {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DkimCanonicalization {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"relaxed/relaxed" => DkimCanonicalization::RelaxedRelaxed,
|
|
b"simple/simple" => DkimCanonicalization::SimpleSimple,
|
|
b"relaxed/simple" => DkimCanonicalization::RelaxedSimple,
|
|
b"simple/relaxed" => DkimCanonicalization::SimpleRelaxed,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DkimCanonicalization::RelaxedRelaxed => "relaxed/relaxed",
|
|
DkimCanonicalization::SimpleSimple => "simple/simple",
|
|
DkimCanonicalization::RelaxedSimple => "relaxed/simple",
|
|
DkimCanonicalization::SimpleRelaxed => "simple/relaxed",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DkimCanonicalization::RelaxedRelaxed),
|
|
1 => Some(DkimCanonicalization::SimpleSimple),
|
|
2 => Some(DkimCanonicalization::RelaxedSimple),
|
|
3 => Some(DkimCanonicalization::SimpleRelaxed),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for DkimCanonicalization {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DkimCanonicalization {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DkimHash {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"sha256" => DkimHash::Sha256,
|
|
b"sha1" => DkimHash::Sha1,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DkimHash::Sha256 => "sha256",
|
|
DkimHash::Sha1 => "sha1",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DkimHash::Sha256),
|
|
1 => Some(DkimHash::Sha1),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for DkimHash {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DkimHash {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DkimManagementType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Automatic" => DkimManagementType::Automatic,
|
|
b"Manual" => DkimManagementType::Manual,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DkimManagementType::Automatic => "Automatic",
|
|
DkimManagementType::Manual => "Manual",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DkimManagementType::Automatic),
|
|
1 => Some(DkimManagementType::Manual),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for DkimManagementType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DkimManagementType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DkimRotationStage {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"active" => DkimRotationStage::Active,
|
|
b"pending" => DkimRotationStage::Pending,
|
|
b"retiring" => DkimRotationStage::Retiring,
|
|
b"retired" => DkimRotationStage::Retired,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DkimRotationStage::Active => "active",
|
|
DkimRotationStage::Pending => "pending",
|
|
DkimRotationStage::Retiring => "retiring",
|
|
DkimRotationStage::Retired => "retired",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DkimRotationStage::Active),
|
|
1 => Some(DkimRotationStage::Pending),
|
|
2 => Some(DkimRotationStage::Retiring),
|
|
3 => Some(DkimRotationStage::Retired),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for DkimRotationStage {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DkimRotationStage {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DkimSignatureType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Dkim1Ed25519Sha256" => DkimSignatureType::Dkim1Ed25519Sha256,
|
|
b"Dkim1RsaSha256" => DkimSignatureType::Dkim1RsaSha256,
|
|
b"Dkim2Ed25519Sha256" => DkimSignatureType::Dkim2Ed25519Sha256,
|
|
b"Dkim2RsaSha256" => DkimSignatureType::Dkim2RsaSha256,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DkimSignatureType::Dkim1Ed25519Sha256 => "Dkim1Ed25519Sha256",
|
|
DkimSignatureType::Dkim1RsaSha256 => "Dkim1RsaSha256",
|
|
DkimSignatureType::Dkim2Ed25519Sha256 => "Dkim2Ed25519Sha256",
|
|
DkimSignatureType::Dkim2RsaSha256 => "Dkim2RsaSha256",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DkimSignatureType::Dkim1Ed25519Sha256),
|
|
1 => Some(DkimSignatureType::Dkim1RsaSha256),
|
|
2 => Some(DkimSignatureType::Dkim2Ed25519Sha256),
|
|
3 => Some(DkimSignatureType::Dkim2RsaSha256),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for DkimSignatureType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DkimSignatureType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DmarcActionDisposition {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"none" => DmarcActionDisposition::None,
|
|
b"pass" => DmarcActionDisposition::Pass,
|
|
b"quarantine" => DmarcActionDisposition::Quarantine,
|
|
b"reject" => DmarcActionDisposition::Reject,
|
|
b"unspecified" => DmarcActionDisposition::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DmarcActionDisposition::None => "none",
|
|
DmarcActionDisposition::Pass => "pass",
|
|
DmarcActionDisposition::Quarantine => "quarantine",
|
|
DmarcActionDisposition::Reject => "reject",
|
|
DmarcActionDisposition::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DmarcActionDisposition::None),
|
|
1 => Some(DmarcActionDisposition::Pass),
|
|
2 => Some(DmarcActionDisposition::Quarantine),
|
|
3 => Some(DmarcActionDisposition::Reject),
|
|
4 => Some(DmarcActionDisposition::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for DmarcActionDisposition {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DmarcActionDisposition {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DmarcAlignment {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"relaxed" => DmarcAlignment::Relaxed,
|
|
b"strict" => DmarcAlignment::Strict,
|
|
b"unspecified" => DmarcAlignment::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DmarcAlignment::Relaxed => "relaxed",
|
|
DmarcAlignment::Strict => "strict",
|
|
DmarcAlignment::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DmarcAlignment::Relaxed),
|
|
1 => Some(DmarcAlignment::Strict),
|
|
2 => Some(DmarcAlignment::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for DmarcAlignment {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DmarcAlignment {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DmarcDiscovery {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"psl" => DmarcDiscovery::Psl,
|
|
b"treewalk" => DmarcDiscovery::Treewalk,
|
|
b"unspecified" => DmarcDiscovery::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DmarcDiscovery::Psl => "psl",
|
|
DmarcDiscovery::Treewalk => "treewalk",
|
|
DmarcDiscovery::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DmarcDiscovery::Psl),
|
|
1 => Some(DmarcDiscovery::Treewalk),
|
|
2 => Some(DmarcDiscovery::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for DmarcDiscovery {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DmarcDiscovery {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DmarcDisposition {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"none" => DmarcDisposition::None,
|
|
b"quarantine" => DmarcDisposition::Quarantine,
|
|
b"reject" => DmarcDisposition::Reject,
|
|
b"unspecified" => DmarcDisposition::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DmarcDisposition::None => "none",
|
|
DmarcDisposition::Quarantine => "quarantine",
|
|
DmarcDisposition::Reject => "reject",
|
|
DmarcDisposition::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DmarcDisposition::None),
|
|
1 => Some(DmarcDisposition::Quarantine),
|
|
2 => Some(DmarcDisposition::Reject),
|
|
3 => Some(DmarcDisposition::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for DmarcDisposition {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DmarcDisposition {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DmarcPolicyOverride {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Forwarded" => DmarcPolicyOverride::Forwarded,
|
|
b"SampledOut" => DmarcPolicyOverride::SampledOut,
|
|
b"TrustedForwarder" => DmarcPolicyOverride::TrustedForwarder,
|
|
b"MailingList" => DmarcPolicyOverride::MailingList,
|
|
b"LocalPolicy" => DmarcPolicyOverride::LocalPolicy,
|
|
b"Other" => DmarcPolicyOverride::Other,
|
|
b"PolicyTestMode" => DmarcPolicyOverride::PolicyTestMode,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DmarcPolicyOverride::Forwarded => "Forwarded",
|
|
DmarcPolicyOverride::SampledOut => "SampledOut",
|
|
DmarcPolicyOverride::TrustedForwarder => "TrustedForwarder",
|
|
DmarcPolicyOverride::MailingList => "MailingList",
|
|
DmarcPolicyOverride::LocalPolicy => "LocalPolicy",
|
|
DmarcPolicyOverride::Other => "Other",
|
|
DmarcPolicyOverride::PolicyTestMode => "PolicyTestMode",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DmarcPolicyOverride::Forwarded),
|
|
1 => Some(DmarcPolicyOverride::SampledOut),
|
|
2 => Some(DmarcPolicyOverride::TrustedForwarder),
|
|
3 => Some(DmarcPolicyOverride::MailingList),
|
|
4 => Some(DmarcPolicyOverride::LocalPolicy),
|
|
5 => Some(DmarcPolicyOverride::Other),
|
|
6 => Some(DmarcPolicyOverride::PolicyTestMode),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for DmarcPolicyOverride {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DmarcPolicyOverride {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DmarcResult {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"pass" => DmarcResult::Pass,
|
|
b"fail" => DmarcResult::Fail,
|
|
b"unspecified" => DmarcResult::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DmarcResult::Pass => "pass",
|
|
DmarcResult::Fail => "fail",
|
|
DmarcResult::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DmarcResult::Pass),
|
|
1 => Some(DmarcResult::Fail),
|
|
2 => Some(DmarcResult::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for DmarcResult {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DmarcResult {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DmarcTroubleshootAuthResultType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Pass" => DmarcTroubleshootAuthResultType::Pass,
|
|
b"Fail" => DmarcTroubleshootAuthResultType::Fail,
|
|
b"SoftFail" => DmarcTroubleshootAuthResultType::SoftFail,
|
|
b"TempError" => DmarcTroubleshootAuthResultType::TempError,
|
|
b"PermError" => DmarcTroubleshootAuthResultType::PermError,
|
|
b"Neutral" => DmarcTroubleshootAuthResultType::Neutral,
|
|
b"None" => DmarcTroubleshootAuthResultType::None,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DmarcTroubleshootAuthResultType::Pass => "Pass",
|
|
DmarcTroubleshootAuthResultType::Fail => "Fail",
|
|
DmarcTroubleshootAuthResultType::SoftFail => "SoftFail",
|
|
DmarcTroubleshootAuthResultType::TempError => "TempError",
|
|
DmarcTroubleshootAuthResultType::PermError => "PermError",
|
|
DmarcTroubleshootAuthResultType::Neutral => "Neutral",
|
|
DmarcTroubleshootAuthResultType::None => "None",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DmarcTroubleshootAuthResultType::Pass),
|
|
1 => Some(DmarcTroubleshootAuthResultType::Fail),
|
|
2 => Some(DmarcTroubleshootAuthResultType::SoftFail),
|
|
3 => Some(DmarcTroubleshootAuthResultType::TempError),
|
|
4 => Some(DmarcTroubleshootAuthResultType::PermError),
|
|
5 => Some(DmarcTroubleshootAuthResultType::Neutral),
|
|
6 => Some(DmarcTroubleshootAuthResultType::None),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for DmarcTroubleshootAuthResultType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DmarcTroubleshootAuthResultType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DnsManagementType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Manual" => DnsManagementType::Manual,
|
|
b"Automatic" => DnsManagementType::Automatic,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DnsManagementType::Manual => "Manual",
|
|
DnsManagementType::Automatic => "Automatic",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DnsManagementType::Manual),
|
|
1 => Some(DnsManagementType::Automatic),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for DnsManagementType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DnsManagementType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DnsPublishStatus {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"synced" => DnsPublishStatus::Synced,
|
|
b"pending" => DnsPublishStatus::Pending,
|
|
b"failed" => DnsPublishStatus::Failed,
|
|
b"unknown" => DnsPublishStatus::Unknown,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DnsPublishStatus::Synced => "synced",
|
|
DnsPublishStatus::Pending => "pending",
|
|
DnsPublishStatus::Failed => "failed",
|
|
DnsPublishStatus::Unknown => "unknown",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DnsPublishStatus::Synced),
|
|
1 => Some(DnsPublishStatus::Pending),
|
|
2 => Some(DnsPublishStatus::Failed),
|
|
3 => Some(DnsPublishStatus::Unknown),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for DnsPublishStatus {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DnsPublishStatus {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DnsRecordType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"dkim" => DnsRecordType::Dkim,
|
|
b"tlsa" => DnsRecordType::Tlsa,
|
|
b"spf" => DnsRecordType::Spf,
|
|
b"mx" => DnsRecordType::Mx,
|
|
b"dmarc" => DnsRecordType::Dmarc,
|
|
b"srv" => DnsRecordType::Srv,
|
|
b"mtaSts" => DnsRecordType::MtaSts,
|
|
b"tlsRpt" => DnsRecordType::TlsRpt,
|
|
b"caa" => DnsRecordType::Caa,
|
|
b"autoConfig" => DnsRecordType::AutoConfig,
|
|
b"autoConfigLegacy" => DnsRecordType::AutoConfigLegacy,
|
|
b"autoDiscover" => DnsRecordType::AutoDiscover,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DnsRecordType::Dkim => "dkim",
|
|
DnsRecordType::Tlsa => "tlsa",
|
|
DnsRecordType::Spf => "spf",
|
|
DnsRecordType::Mx => "mx",
|
|
DnsRecordType::Dmarc => "dmarc",
|
|
DnsRecordType::Srv => "srv",
|
|
DnsRecordType::MtaSts => "mtaSts",
|
|
DnsRecordType::TlsRpt => "tlsRpt",
|
|
DnsRecordType::Caa => "caa",
|
|
DnsRecordType::AutoConfig => "autoConfig",
|
|
DnsRecordType::AutoConfigLegacy => "autoConfigLegacy",
|
|
DnsRecordType::AutoDiscover => "autoDiscover",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DnsRecordType::Dkim),
|
|
1 => Some(DnsRecordType::Tlsa),
|
|
2 => Some(DnsRecordType::Spf),
|
|
3 => Some(DnsRecordType::Mx),
|
|
4 => Some(DnsRecordType::Dmarc),
|
|
5 => Some(DnsRecordType::Srv),
|
|
6 => Some(DnsRecordType::MtaSts),
|
|
7 => Some(DnsRecordType::TlsRpt),
|
|
8 => Some(DnsRecordType::Caa),
|
|
9 => Some(DnsRecordType::AutoConfig),
|
|
10 => Some(DnsRecordType::AutoConfigLegacy),
|
|
11 => Some(DnsRecordType::AutoDiscover),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 12;
|
|
}
|
|
|
|
impl serde::Serialize for DnsRecordType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DnsRecordType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DnsResolverProtocol {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"tls" => DnsResolverProtocol::Tls,
|
|
b"udp" => DnsResolverProtocol::Udp,
|
|
b"tcp" => DnsResolverProtocol::Tcp,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DnsResolverProtocol::Tls => "tls",
|
|
DnsResolverProtocol::Udp => "udp",
|
|
DnsResolverProtocol::Tcp => "tcp",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DnsResolverProtocol::Tls),
|
|
1 => Some(DnsResolverProtocol::Udp),
|
|
2 => Some(DnsResolverProtocol::Tcp),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for DnsResolverProtocol {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DnsResolverProtocol {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DnsResolverType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"System" => DnsResolverType::System,
|
|
b"Custom" => DnsResolverType::Custom,
|
|
b"Cloudflare" => DnsResolverType::Cloudflare,
|
|
b"Quad9" => DnsResolverType::Quad9,
|
|
b"Google" => DnsResolverType::Google,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DnsResolverType::System => "System",
|
|
DnsResolverType::Custom => "Custom",
|
|
DnsResolverType::Cloudflare => "Cloudflare",
|
|
DnsResolverType::Quad9 => "Quad9",
|
|
DnsResolverType::Google => "Google",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DnsResolverType::System),
|
|
1 => Some(DnsResolverType::Custom),
|
|
2 => Some(DnsResolverType::Cloudflare),
|
|
3 => Some(DnsResolverType::Quad9),
|
|
4 => Some(DnsResolverType::Google),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for DnsResolverType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DnsResolverType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DnsServerBootstrapType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::map! {
|
|
value.as_bytes(),
|
|
DnsServerBootstrapType,
|
|
b"Manual" => DnsServerBootstrapType::Manual,
|
|
b"Tsig" => DnsServerBootstrapType::Tsig,
|
|
b"Deprecated1" => DnsServerBootstrapType::Deprecated1,
|
|
b"Cloudflare" => DnsServerBootstrapType::Cloudflare,
|
|
b"DigitalOcean" => DnsServerBootstrapType::DigitalOcean,
|
|
b"DeSEC" => DnsServerBootstrapType::DeSEC,
|
|
b"Ovh" => DnsServerBootstrapType::Ovh,
|
|
b"Bunny" => DnsServerBootstrapType::Bunny,
|
|
b"Porkbun" => DnsServerBootstrapType::Porkbun,
|
|
b"Dnsimple" => DnsServerBootstrapType::Dnsimple,
|
|
b"Spaceship" => DnsServerBootstrapType::Spaceship,
|
|
b"Route53" => DnsServerBootstrapType::Route53,
|
|
b"GoogleCloudDns" => DnsServerBootstrapType::GoogleCloudDns,
|
|
b"Alidns" => DnsServerBootstrapType::Alidns,
|
|
b"ArvanCloud" => DnsServerBootstrapType::ArvanCloud,
|
|
b"Autodns" => DnsServerBootstrapType::Autodns,
|
|
b"AzureDns" => DnsServerBootstrapType::AzureDns,
|
|
b"BaiduCloud" => DnsServerBootstrapType::BaiduCloud,
|
|
b"BluecatV2" => DnsServerBootstrapType::BluecatV2,
|
|
b"ClouDns" => DnsServerBootstrapType::ClouDns,
|
|
b"Constellix" => DnsServerBootstrapType::Constellix,
|
|
b"Cpanel" => DnsServerBootstrapType::Cpanel,
|
|
b"Ddnss" => DnsServerBootstrapType::Ddnss,
|
|
b"DnsMadeEasy" => DnsServerBootstrapType::DnsMadeEasy,
|
|
b"Domeneshop" => DnsServerBootstrapType::Domeneshop,
|
|
b"Dreamhost" => DnsServerBootstrapType::Dreamhost,
|
|
b"DuckDns" => DnsServerBootstrapType::DuckDns,
|
|
b"Dynu" => DnsServerBootstrapType::Dynu,
|
|
b"EasyDns" => DnsServerBootstrapType::EasyDns,
|
|
b"EdgeDns" => DnsServerBootstrapType::EdgeDns,
|
|
b"Exoscale" => DnsServerBootstrapType::Exoscale,
|
|
b"FreeMyIp" => DnsServerBootstrapType::FreeMyIp,
|
|
b"GandiV5" => DnsServerBootstrapType::GandiV5,
|
|
b"Gcore" => DnsServerBootstrapType::Gcore,
|
|
b"Glesys" => DnsServerBootstrapType::Glesys,
|
|
b"Godaddy" => DnsServerBootstrapType::Godaddy,
|
|
b"Hetzner" => DnsServerBootstrapType::Hetzner,
|
|
b"HostingDe" => DnsServerBootstrapType::HostingDe,
|
|
b"Hostinger" => DnsServerBootstrapType::Hostinger,
|
|
b"HuaweiCloud" => DnsServerBootstrapType::HuaweiCloud,
|
|
b"Hurricane" => DnsServerBootstrapType::Hurricane,
|
|
b"IbmCloud" => DnsServerBootstrapType::IbmCloud,
|
|
b"Infoblox" => DnsServerBootstrapType::Infoblox,
|
|
b"Infomaniak" => DnsServerBootstrapType::Infomaniak,
|
|
b"Inwx" => DnsServerBootstrapType::Inwx,
|
|
b"Ionos" => DnsServerBootstrapType::Ionos,
|
|
b"Ipv64" => DnsServerBootstrapType::Ipv64,
|
|
b"Joker" => DnsServerBootstrapType::Joker,
|
|
b"Lightsail" => DnsServerBootstrapType::Lightsail,
|
|
b"Linode" => DnsServerBootstrapType::Linode,
|
|
b"LuaDns" => DnsServerBootstrapType::LuaDns,
|
|
b"MythicBeasts" => DnsServerBootstrapType::MythicBeasts,
|
|
b"Namecheap" => DnsServerBootstrapType::Namecheap,
|
|
b"NameDotCom" => DnsServerBootstrapType::NameDotCom,
|
|
b"NameSilo" => DnsServerBootstrapType::NameSilo,
|
|
b"Netcup" => DnsServerBootstrapType::Netcup,
|
|
b"Netlify" => DnsServerBootstrapType::Netlify,
|
|
b"Nifcloud" => DnsServerBootstrapType::Nifcloud,
|
|
b"Ns1" => DnsServerBootstrapType::Ns1,
|
|
b"OracleCloud" => DnsServerBootstrapType::OracleCloud,
|
|
b"Plesk" => DnsServerBootstrapType::Plesk,
|
|
b"Safedns" => DnsServerBootstrapType::Safedns,
|
|
b"Scaleway" => DnsServerBootstrapType::Scaleway,
|
|
b"TencentCloud" => DnsServerBootstrapType::TencentCloud,
|
|
b"Transip" => DnsServerBootstrapType::Transip,
|
|
b"UltraDns" => DnsServerBootstrapType::UltraDns,
|
|
b"Vercel" => DnsServerBootstrapType::Vercel,
|
|
b"Volcengine" => DnsServerBootstrapType::Volcengine,
|
|
b"Vultr" => DnsServerBootstrapType::Vultr,
|
|
b"WebSupport" => DnsServerBootstrapType::WebSupport,
|
|
b"YandexCloud" => DnsServerBootstrapType::YandexCloud,
|
|
}
|
|
.copied()
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DnsServerBootstrapType::Manual => "Manual",
|
|
DnsServerBootstrapType::Tsig => "Tsig",
|
|
DnsServerBootstrapType::Deprecated1 => "Deprecated1",
|
|
DnsServerBootstrapType::Cloudflare => "Cloudflare",
|
|
DnsServerBootstrapType::DigitalOcean => "DigitalOcean",
|
|
DnsServerBootstrapType::DeSEC => "DeSEC",
|
|
DnsServerBootstrapType::Ovh => "Ovh",
|
|
DnsServerBootstrapType::Bunny => "Bunny",
|
|
DnsServerBootstrapType::Porkbun => "Porkbun",
|
|
DnsServerBootstrapType::Dnsimple => "Dnsimple",
|
|
DnsServerBootstrapType::Spaceship => "Spaceship",
|
|
DnsServerBootstrapType::Route53 => "Route53",
|
|
DnsServerBootstrapType::GoogleCloudDns => "GoogleCloudDns",
|
|
DnsServerBootstrapType::Alidns => "Alidns",
|
|
DnsServerBootstrapType::ArvanCloud => "ArvanCloud",
|
|
DnsServerBootstrapType::Autodns => "Autodns",
|
|
DnsServerBootstrapType::AzureDns => "AzureDns",
|
|
DnsServerBootstrapType::BaiduCloud => "BaiduCloud",
|
|
DnsServerBootstrapType::BluecatV2 => "BluecatV2",
|
|
DnsServerBootstrapType::ClouDns => "ClouDns",
|
|
DnsServerBootstrapType::Constellix => "Constellix",
|
|
DnsServerBootstrapType::Cpanel => "Cpanel",
|
|
DnsServerBootstrapType::Ddnss => "Ddnss",
|
|
DnsServerBootstrapType::DnsMadeEasy => "DnsMadeEasy",
|
|
DnsServerBootstrapType::Domeneshop => "Domeneshop",
|
|
DnsServerBootstrapType::Dreamhost => "Dreamhost",
|
|
DnsServerBootstrapType::DuckDns => "DuckDns",
|
|
DnsServerBootstrapType::Dynu => "Dynu",
|
|
DnsServerBootstrapType::EasyDns => "EasyDns",
|
|
DnsServerBootstrapType::EdgeDns => "EdgeDns",
|
|
DnsServerBootstrapType::Exoscale => "Exoscale",
|
|
DnsServerBootstrapType::FreeMyIp => "FreeMyIp",
|
|
DnsServerBootstrapType::GandiV5 => "GandiV5",
|
|
DnsServerBootstrapType::Gcore => "Gcore",
|
|
DnsServerBootstrapType::Glesys => "Glesys",
|
|
DnsServerBootstrapType::Godaddy => "Godaddy",
|
|
DnsServerBootstrapType::Hetzner => "Hetzner",
|
|
DnsServerBootstrapType::HostingDe => "HostingDe",
|
|
DnsServerBootstrapType::Hostinger => "Hostinger",
|
|
DnsServerBootstrapType::HuaweiCloud => "HuaweiCloud",
|
|
DnsServerBootstrapType::Hurricane => "Hurricane",
|
|
DnsServerBootstrapType::IbmCloud => "IbmCloud",
|
|
DnsServerBootstrapType::Infoblox => "Infoblox",
|
|
DnsServerBootstrapType::Infomaniak => "Infomaniak",
|
|
DnsServerBootstrapType::Inwx => "Inwx",
|
|
DnsServerBootstrapType::Ionos => "Ionos",
|
|
DnsServerBootstrapType::Ipv64 => "Ipv64",
|
|
DnsServerBootstrapType::Joker => "Joker",
|
|
DnsServerBootstrapType::Lightsail => "Lightsail",
|
|
DnsServerBootstrapType::Linode => "Linode",
|
|
DnsServerBootstrapType::LuaDns => "LuaDns",
|
|
DnsServerBootstrapType::MythicBeasts => "MythicBeasts",
|
|
DnsServerBootstrapType::Namecheap => "Namecheap",
|
|
DnsServerBootstrapType::NameDotCom => "NameDotCom",
|
|
DnsServerBootstrapType::NameSilo => "NameSilo",
|
|
DnsServerBootstrapType::Netcup => "Netcup",
|
|
DnsServerBootstrapType::Netlify => "Netlify",
|
|
DnsServerBootstrapType::Nifcloud => "Nifcloud",
|
|
DnsServerBootstrapType::Ns1 => "Ns1",
|
|
DnsServerBootstrapType::OracleCloud => "OracleCloud",
|
|
DnsServerBootstrapType::Plesk => "Plesk",
|
|
DnsServerBootstrapType::Safedns => "Safedns",
|
|
DnsServerBootstrapType::Scaleway => "Scaleway",
|
|
DnsServerBootstrapType::TencentCloud => "TencentCloud",
|
|
DnsServerBootstrapType::Transip => "Transip",
|
|
DnsServerBootstrapType::UltraDns => "UltraDns",
|
|
DnsServerBootstrapType::Vercel => "Vercel",
|
|
DnsServerBootstrapType::Volcengine => "Volcengine",
|
|
DnsServerBootstrapType::Vultr => "Vultr",
|
|
DnsServerBootstrapType::WebSupport => "WebSupport",
|
|
DnsServerBootstrapType::YandexCloud => "YandexCloud",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DnsServerBootstrapType::Manual),
|
|
1 => Some(DnsServerBootstrapType::Tsig),
|
|
2 => Some(DnsServerBootstrapType::Deprecated1),
|
|
3 => Some(DnsServerBootstrapType::Cloudflare),
|
|
4 => Some(DnsServerBootstrapType::DigitalOcean),
|
|
5 => Some(DnsServerBootstrapType::DeSEC),
|
|
6 => Some(DnsServerBootstrapType::Ovh),
|
|
7 => Some(DnsServerBootstrapType::Bunny),
|
|
8 => Some(DnsServerBootstrapType::Porkbun),
|
|
9 => Some(DnsServerBootstrapType::Dnsimple),
|
|
10 => Some(DnsServerBootstrapType::Spaceship),
|
|
11 => Some(DnsServerBootstrapType::Route53),
|
|
12 => Some(DnsServerBootstrapType::GoogleCloudDns),
|
|
13 => Some(DnsServerBootstrapType::Alidns),
|
|
14 => Some(DnsServerBootstrapType::ArvanCloud),
|
|
15 => Some(DnsServerBootstrapType::Autodns),
|
|
16 => Some(DnsServerBootstrapType::AzureDns),
|
|
17 => Some(DnsServerBootstrapType::BaiduCloud),
|
|
18 => Some(DnsServerBootstrapType::BluecatV2),
|
|
19 => Some(DnsServerBootstrapType::ClouDns),
|
|
20 => Some(DnsServerBootstrapType::Constellix),
|
|
21 => Some(DnsServerBootstrapType::Cpanel),
|
|
22 => Some(DnsServerBootstrapType::Ddnss),
|
|
23 => Some(DnsServerBootstrapType::DnsMadeEasy),
|
|
24 => Some(DnsServerBootstrapType::Domeneshop),
|
|
25 => Some(DnsServerBootstrapType::Dreamhost),
|
|
26 => Some(DnsServerBootstrapType::DuckDns),
|
|
27 => Some(DnsServerBootstrapType::Dynu),
|
|
28 => Some(DnsServerBootstrapType::EasyDns),
|
|
29 => Some(DnsServerBootstrapType::EdgeDns),
|
|
30 => Some(DnsServerBootstrapType::Exoscale),
|
|
31 => Some(DnsServerBootstrapType::FreeMyIp),
|
|
32 => Some(DnsServerBootstrapType::GandiV5),
|
|
33 => Some(DnsServerBootstrapType::Gcore),
|
|
34 => Some(DnsServerBootstrapType::Glesys),
|
|
35 => Some(DnsServerBootstrapType::Godaddy),
|
|
36 => Some(DnsServerBootstrapType::Hetzner),
|
|
37 => Some(DnsServerBootstrapType::HostingDe),
|
|
38 => Some(DnsServerBootstrapType::Hostinger),
|
|
39 => Some(DnsServerBootstrapType::HuaweiCloud),
|
|
40 => Some(DnsServerBootstrapType::Hurricane),
|
|
41 => Some(DnsServerBootstrapType::IbmCloud),
|
|
42 => Some(DnsServerBootstrapType::Infoblox),
|
|
43 => Some(DnsServerBootstrapType::Infomaniak),
|
|
44 => Some(DnsServerBootstrapType::Inwx),
|
|
45 => Some(DnsServerBootstrapType::Ionos),
|
|
46 => Some(DnsServerBootstrapType::Ipv64),
|
|
47 => Some(DnsServerBootstrapType::Joker),
|
|
48 => Some(DnsServerBootstrapType::Lightsail),
|
|
49 => Some(DnsServerBootstrapType::Linode),
|
|
50 => Some(DnsServerBootstrapType::LuaDns),
|
|
51 => Some(DnsServerBootstrapType::MythicBeasts),
|
|
52 => Some(DnsServerBootstrapType::Namecheap),
|
|
53 => Some(DnsServerBootstrapType::NameDotCom),
|
|
54 => Some(DnsServerBootstrapType::NameSilo),
|
|
55 => Some(DnsServerBootstrapType::Netcup),
|
|
56 => Some(DnsServerBootstrapType::Netlify),
|
|
57 => Some(DnsServerBootstrapType::Nifcloud),
|
|
58 => Some(DnsServerBootstrapType::Ns1),
|
|
59 => Some(DnsServerBootstrapType::OracleCloud),
|
|
60 => Some(DnsServerBootstrapType::Plesk),
|
|
61 => Some(DnsServerBootstrapType::Safedns),
|
|
62 => Some(DnsServerBootstrapType::Scaleway),
|
|
63 => Some(DnsServerBootstrapType::TencentCloud),
|
|
64 => Some(DnsServerBootstrapType::Transip),
|
|
65 => Some(DnsServerBootstrapType::UltraDns),
|
|
66 => Some(DnsServerBootstrapType::Vercel),
|
|
67 => Some(DnsServerBootstrapType::Volcengine),
|
|
68 => Some(DnsServerBootstrapType::Vultr),
|
|
69 => Some(DnsServerBootstrapType::WebSupport),
|
|
70 => Some(DnsServerBootstrapType::YandexCloud),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 71;
|
|
}
|
|
|
|
impl serde::Serialize for DnsServerBootstrapType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DnsServerBootstrapType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for DnsServerType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::map! {
|
|
value.as_bytes(),
|
|
DnsServerType,
|
|
b"Tsig" => DnsServerType::Tsig,
|
|
b"Deprecated1" => DnsServerType::Deprecated1,
|
|
b"Cloudflare" => DnsServerType::Cloudflare,
|
|
b"DigitalOcean" => DnsServerType::DigitalOcean,
|
|
b"DeSEC" => DnsServerType::DeSEC,
|
|
b"Ovh" => DnsServerType::Ovh,
|
|
b"Bunny" => DnsServerType::Bunny,
|
|
b"Porkbun" => DnsServerType::Porkbun,
|
|
b"Dnsimple" => DnsServerType::Dnsimple,
|
|
b"Spaceship" => DnsServerType::Spaceship,
|
|
b"Route53" => DnsServerType::Route53,
|
|
b"GoogleCloudDns" => DnsServerType::GoogleCloudDns,
|
|
b"Alidns" => DnsServerType::Alidns,
|
|
b"ArvanCloud" => DnsServerType::ArvanCloud,
|
|
b"Autodns" => DnsServerType::Autodns,
|
|
b"AzureDns" => DnsServerType::AzureDns,
|
|
b"BaiduCloud" => DnsServerType::BaiduCloud,
|
|
b"BluecatV2" => DnsServerType::BluecatV2,
|
|
b"ClouDns" => DnsServerType::ClouDns,
|
|
b"Constellix" => DnsServerType::Constellix,
|
|
b"Cpanel" => DnsServerType::Cpanel,
|
|
b"Ddnss" => DnsServerType::Ddnss,
|
|
b"DnsMadeEasy" => DnsServerType::DnsMadeEasy,
|
|
b"Domeneshop" => DnsServerType::Domeneshop,
|
|
b"Dreamhost" => DnsServerType::Dreamhost,
|
|
b"DuckDns" => DnsServerType::DuckDns,
|
|
b"Dynu" => DnsServerType::Dynu,
|
|
b"EasyDns" => DnsServerType::EasyDns,
|
|
b"EdgeDns" => DnsServerType::EdgeDns,
|
|
b"Exoscale" => DnsServerType::Exoscale,
|
|
b"FreeMyIp" => DnsServerType::FreeMyIp,
|
|
b"GandiV5" => DnsServerType::GandiV5,
|
|
b"Gcore" => DnsServerType::Gcore,
|
|
b"Glesys" => DnsServerType::Glesys,
|
|
b"Godaddy" => DnsServerType::Godaddy,
|
|
b"Hetzner" => DnsServerType::Hetzner,
|
|
b"HostingDe" => DnsServerType::HostingDe,
|
|
b"Hostinger" => DnsServerType::Hostinger,
|
|
b"HuaweiCloud" => DnsServerType::HuaweiCloud,
|
|
b"Hurricane" => DnsServerType::Hurricane,
|
|
b"IbmCloud" => DnsServerType::IbmCloud,
|
|
b"Infoblox" => DnsServerType::Infoblox,
|
|
b"Infomaniak" => DnsServerType::Infomaniak,
|
|
b"Inwx" => DnsServerType::Inwx,
|
|
b"Ionos" => DnsServerType::Ionos,
|
|
b"Ipv64" => DnsServerType::Ipv64,
|
|
b"Joker" => DnsServerType::Joker,
|
|
b"Lightsail" => DnsServerType::Lightsail,
|
|
b"Linode" => DnsServerType::Linode,
|
|
b"LuaDns" => DnsServerType::LuaDns,
|
|
b"MythicBeasts" => DnsServerType::MythicBeasts,
|
|
b"Namecheap" => DnsServerType::Namecheap,
|
|
b"NameDotCom" => DnsServerType::NameDotCom,
|
|
b"NameSilo" => DnsServerType::NameSilo,
|
|
b"Netcup" => DnsServerType::Netcup,
|
|
b"Netlify" => DnsServerType::Netlify,
|
|
b"Nifcloud" => DnsServerType::Nifcloud,
|
|
b"Ns1" => DnsServerType::Ns1,
|
|
b"OracleCloud" => DnsServerType::OracleCloud,
|
|
b"Plesk" => DnsServerType::Plesk,
|
|
b"Safedns" => DnsServerType::Safedns,
|
|
b"Scaleway" => DnsServerType::Scaleway,
|
|
b"TencentCloud" => DnsServerType::TencentCloud,
|
|
b"Transip" => DnsServerType::Transip,
|
|
b"UltraDns" => DnsServerType::UltraDns,
|
|
b"Vercel" => DnsServerType::Vercel,
|
|
b"Volcengine" => DnsServerType::Volcengine,
|
|
b"Vultr" => DnsServerType::Vultr,
|
|
b"WebSupport" => DnsServerType::WebSupport,
|
|
b"YandexCloud" => DnsServerType::YandexCloud,
|
|
}
|
|
.copied()
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
DnsServerType::Tsig => "Tsig",
|
|
DnsServerType::Deprecated1 => "Deprecated1",
|
|
DnsServerType::Cloudflare => "Cloudflare",
|
|
DnsServerType::DigitalOcean => "DigitalOcean",
|
|
DnsServerType::DeSEC => "DeSEC",
|
|
DnsServerType::Ovh => "Ovh",
|
|
DnsServerType::Bunny => "Bunny",
|
|
DnsServerType::Porkbun => "Porkbun",
|
|
DnsServerType::Dnsimple => "Dnsimple",
|
|
DnsServerType::Spaceship => "Spaceship",
|
|
DnsServerType::Route53 => "Route53",
|
|
DnsServerType::GoogleCloudDns => "GoogleCloudDns",
|
|
DnsServerType::Alidns => "Alidns",
|
|
DnsServerType::ArvanCloud => "ArvanCloud",
|
|
DnsServerType::Autodns => "Autodns",
|
|
DnsServerType::AzureDns => "AzureDns",
|
|
DnsServerType::BaiduCloud => "BaiduCloud",
|
|
DnsServerType::BluecatV2 => "BluecatV2",
|
|
DnsServerType::ClouDns => "ClouDns",
|
|
DnsServerType::Constellix => "Constellix",
|
|
DnsServerType::Cpanel => "Cpanel",
|
|
DnsServerType::Ddnss => "Ddnss",
|
|
DnsServerType::DnsMadeEasy => "DnsMadeEasy",
|
|
DnsServerType::Domeneshop => "Domeneshop",
|
|
DnsServerType::Dreamhost => "Dreamhost",
|
|
DnsServerType::DuckDns => "DuckDns",
|
|
DnsServerType::Dynu => "Dynu",
|
|
DnsServerType::EasyDns => "EasyDns",
|
|
DnsServerType::EdgeDns => "EdgeDns",
|
|
DnsServerType::Exoscale => "Exoscale",
|
|
DnsServerType::FreeMyIp => "FreeMyIp",
|
|
DnsServerType::GandiV5 => "GandiV5",
|
|
DnsServerType::Gcore => "Gcore",
|
|
DnsServerType::Glesys => "Glesys",
|
|
DnsServerType::Godaddy => "Godaddy",
|
|
DnsServerType::Hetzner => "Hetzner",
|
|
DnsServerType::HostingDe => "HostingDe",
|
|
DnsServerType::Hostinger => "Hostinger",
|
|
DnsServerType::HuaweiCloud => "HuaweiCloud",
|
|
DnsServerType::Hurricane => "Hurricane",
|
|
DnsServerType::IbmCloud => "IbmCloud",
|
|
DnsServerType::Infoblox => "Infoblox",
|
|
DnsServerType::Infomaniak => "Infomaniak",
|
|
DnsServerType::Inwx => "Inwx",
|
|
DnsServerType::Ionos => "Ionos",
|
|
DnsServerType::Ipv64 => "Ipv64",
|
|
DnsServerType::Joker => "Joker",
|
|
DnsServerType::Lightsail => "Lightsail",
|
|
DnsServerType::Linode => "Linode",
|
|
DnsServerType::LuaDns => "LuaDns",
|
|
DnsServerType::MythicBeasts => "MythicBeasts",
|
|
DnsServerType::Namecheap => "Namecheap",
|
|
DnsServerType::NameDotCom => "NameDotCom",
|
|
DnsServerType::NameSilo => "NameSilo",
|
|
DnsServerType::Netcup => "Netcup",
|
|
DnsServerType::Netlify => "Netlify",
|
|
DnsServerType::Nifcloud => "Nifcloud",
|
|
DnsServerType::Ns1 => "Ns1",
|
|
DnsServerType::OracleCloud => "OracleCloud",
|
|
DnsServerType::Plesk => "Plesk",
|
|
DnsServerType::Safedns => "Safedns",
|
|
DnsServerType::Scaleway => "Scaleway",
|
|
DnsServerType::TencentCloud => "TencentCloud",
|
|
DnsServerType::Transip => "Transip",
|
|
DnsServerType::UltraDns => "UltraDns",
|
|
DnsServerType::Vercel => "Vercel",
|
|
DnsServerType::Volcengine => "Volcengine",
|
|
DnsServerType::Vultr => "Vultr",
|
|
DnsServerType::WebSupport => "WebSupport",
|
|
DnsServerType::YandexCloud => "YandexCloud",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(DnsServerType::Tsig),
|
|
1 => Some(DnsServerType::Deprecated1),
|
|
2 => Some(DnsServerType::Cloudflare),
|
|
3 => Some(DnsServerType::DigitalOcean),
|
|
4 => Some(DnsServerType::DeSEC),
|
|
5 => Some(DnsServerType::Ovh),
|
|
6 => Some(DnsServerType::Bunny),
|
|
7 => Some(DnsServerType::Porkbun),
|
|
8 => Some(DnsServerType::Dnsimple),
|
|
9 => Some(DnsServerType::Spaceship),
|
|
10 => Some(DnsServerType::Route53),
|
|
11 => Some(DnsServerType::GoogleCloudDns),
|
|
12 => Some(DnsServerType::Alidns),
|
|
13 => Some(DnsServerType::ArvanCloud),
|
|
14 => Some(DnsServerType::Autodns),
|
|
15 => Some(DnsServerType::AzureDns),
|
|
16 => Some(DnsServerType::BaiduCloud),
|
|
17 => Some(DnsServerType::BluecatV2),
|
|
18 => Some(DnsServerType::ClouDns),
|
|
19 => Some(DnsServerType::Constellix),
|
|
20 => Some(DnsServerType::Cpanel),
|
|
21 => Some(DnsServerType::Ddnss),
|
|
22 => Some(DnsServerType::DnsMadeEasy),
|
|
23 => Some(DnsServerType::Domeneshop),
|
|
24 => Some(DnsServerType::Dreamhost),
|
|
25 => Some(DnsServerType::DuckDns),
|
|
26 => Some(DnsServerType::Dynu),
|
|
27 => Some(DnsServerType::EasyDns),
|
|
28 => Some(DnsServerType::EdgeDns),
|
|
29 => Some(DnsServerType::Exoscale),
|
|
30 => Some(DnsServerType::FreeMyIp),
|
|
31 => Some(DnsServerType::GandiV5),
|
|
32 => Some(DnsServerType::Gcore),
|
|
33 => Some(DnsServerType::Glesys),
|
|
34 => Some(DnsServerType::Godaddy),
|
|
35 => Some(DnsServerType::Hetzner),
|
|
36 => Some(DnsServerType::HostingDe),
|
|
37 => Some(DnsServerType::Hostinger),
|
|
38 => Some(DnsServerType::HuaweiCloud),
|
|
39 => Some(DnsServerType::Hurricane),
|
|
40 => Some(DnsServerType::IbmCloud),
|
|
41 => Some(DnsServerType::Infoblox),
|
|
42 => Some(DnsServerType::Infomaniak),
|
|
43 => Some(DnsServerType::Inwx),
|
|
44 => Some(DnsServerType::Ionos),
|
|
45 => Some(DnsServerType::Ipv64),
|
|
46 => Some(DnsServerType::Joker),
|
|
47 => Some(DnsServerType::Lightsail),
|
|
48 => Some(DnsServerType::Linode),
|
|
49 => Some(DnsServerType::LuaDns),
|
|
50 => Some(DnsServerType::MythicBeasts),
|
|
51 => Some(DnsServerType::Namecheap),
|
|
52 => Some(DnsServerType::NameDotCom),
|
|
53 => Some(DnsServerType::NameSilo),
|
|
54 => Some(DnsServerType::Netcup),
|
|
55 => Some(DnsServerType::Netlify),
|
|
56 => Some(DnsServerType::Nifcloud),
|
|
57 => Some(DnsServerType::Ns1),
|
|
58 => Some(DnsServerType::OracleCloud),
|
|
59 => Some(DnsServerType::Plesk),
|
|
60 => Some(DnsServerType::Safedns),
|
|
61 => Some(DnsServerType::Scaleway),
|
|
62 => Some(DnsServerType::TencentCloud),
|
|
63 => Some(DnsServerType::Transip),
|
|
64 => Some(DnsServerType::UltraDns),
|
|
65 => Some(DnsServerType::Vercel),
|
|
66 => Some(DnsServerType::Volcengine),
|
|
67 => Some(DnsServerType::Vultr),
|
|
68 => Some(DnsServerType::WebSupport),
|
|
69 => Some(DnsServerType::YandexCloud),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 70;
|
|
}
|
|
|
|
impl serde::Serialize for DnsServerType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for DnsServerType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for EncryptionAtRestType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => EncryptionAtRestType::Disabled,
|
|
b"Aes128" => EncryptionAtRestType::Aes128,
|
|
b"Aes256" => EncryptionAtRestType::Aes256,
|
|
b"Aes256Gcm" => EncryptionAtRestType::Aes256Gcm,
|
|
b"ChaCha20Poly1305" => EncryptionAtRestType::ChaCha20Poly1305,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
EncryptionAtRestType::Disabled => "Disabled",
|
|
EncryptionAtRestType::Aes128 => "Aes128",
|
|
EncryptionAtRestType::Aes256 => "Aes256",
|
|
EncryptionAtRestType::Aes256Gcm => "Aes256Gcm",
|
|
EncryptionAtRestType::ChaCha20Poly1305 => "ChaCha20Poly1305",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(EncryptionAtRestType::Disabled),
|
|
1 => Some(EncryptionAtRestType::Aes128),
|
|
2 => Some(EncryptionAtRestType::Aes256),
|
|
3 => Some(EncryptionAtRestType::Aes256Gcm),
|
|
4 => Some(EncryptionAtRestType::ChaCha20Poly1305),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for EncryptionAtRestType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for EncryptionAtRestType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for EventPolicy {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"include" => EventPolicy::Include,
|
|
b"exclude" => EventPolicy::Exclude,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
EventPolicy::Include => "include",
|
|
EventPolicy::Exclude => "exclude",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(EventPolicy::Include),
|
|
1 => Some(EventPolicy::Exclude),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for EventPolicy {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for EventPolicy {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ExpressionConstant {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"relaxed" => ExpressionConstant::Relaxed,
|
|
b"strict" => ExpressionConstant::Strict,
|
|
b"disable" => ExpressionConstant::Disable,
|
|
b"optional" => ExpressionConstant::Optional,
|
|
b"require" => ExpressionConstant::Require,
|
|
b"ipv4_only" => ExpressionConstant::Ipv4Only,
|
|
b"ipv6_only" => ExpressionConstant::Ipv6Only,
|
|
b"ipv6_then_ipv4" => ExpressionConstant::Ipv6ThenIpv4,
|
|
b"ipv4_then_ipv6" => ExpressionConstant::Ipv4ThenIpv6,
|
|
b"hourly" => ExpressionConstant::Hourly,
|
|
b"daily" => ExpressionConstant::Daily,
|
|
b"weekly" => ExpressionConstant::Weekly,
|
|
b"login" => ExpressionConstant::Login,
|
|
b"plain" => ExpressionConstant::Plain,
|
|
b"xoauth2" => ExpressionConstant::Xoauth2,
|
|
b"oauthbearer" => ExpressionConstant::Oauthbearer,
|
|
b"mixer" => ExpressionConstant::Mixer,
|
|
b"stanag4406" => ExpressionConstant::Stanag4406,
|
|
b"nsep" => ExpressionConstant::Nsep,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ExpressionConstant::Relaxed => "relaxed",
|
|
ExpressionConstant::Strict => "strict",
|
|
ExpressionConstant::Disable => "disable",
|
|
ExpressionConstant::Optional => "optional",
|
|
ExpressionConstant::Require => "require",
|
|
ExpressionConstant::Ipv4Only => "ipv4_only",
|
|
ExpressionConstant::Ipv6Only => "ipv6_only",
|
|
ExpressionConstant::Ipv6ThenIpv4 => "ipv6_then_ipv4",
|
|
ExpressionConstant::Ipv4ThenIpv6 => "ipv4_then_ipv6",
|
|
ExpressionConstant::Hourly => "hourly",
|
|
ExpressionConstant::Daily => "daily",
|
|
ExpressionConstant::Weekly => "weekly",
|
|
ExpressionConstant::Login => "login",
|
|
ExpressionConstant::Plain => "plain",
|
|
ExpressionConstant::Xoauth2 => "xoauth2",
|
|
ExpressionConstant::Oauthbearer => "oauthbearer",
|
|
ExpressionConstant::Mixer => "mixer",
|
|
ExpressionConstant::Stanag4406 => "stanag4406",
|
|
ExpressionConstant::Nsep => "nsep",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ExpressionConstant::Relaxed),
|
|
1 => Some(ExpressionConstant::Strict),
|
|
2 => Some(ExpressionConstant::Disable),
|
|
3 => Some(ExpressionConstant::Optional),
|
|
4 => Some(ExpressionConstant::Require),
|
|
5 => Some(ExpressionConstant::Ipv4Only),
|
|
6 => Some(ExpressionConstant::Ipv6Only),
|
|
7 => Some(ExpressionConstant::Ipv6ThenIpv4),
|
|
8 => Some(ExpressionConstant::Ipv4ThenIpv6),
|
|
9 => Some(ExpressionConstant::Hourly),
|
|
10 => Some(ExpressionConstant::Daily),
|
|
11 => Some(ExpressionConstant::Weekly),
|
|
12 => Some(ExpressionConstant::Login),
|
|
13 => Some(ExpressionConstant::Plain),
|
|
14 => Some(ExpressionConstant::Xoauth2),
|
|
15 => Some(ExpressionConstant::Oauthbearer),
|
|
16 => Some(ExpressionConstant::Mixer),
|
|
17 => Some(ExpressionConstant::Stanag4406),
|
|
18 => Some(ExpressionConstant::Nsep),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 19;
|
|
}
|
|
|
|
impl serde::Serialize for ExpressionConstant {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ExpressionConstant {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ExpressionVariable {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::map! {
|
|
value.as_bytes(),
|
|
ExpressionVariable,
|
|
b"asn" => ExpressionVariable::Asn,
|
|
b"attributes" => ExpressionVariable::Attributes,
|
|
b"authenticated_as" => ExpressionVariable::AuthenticatedAs,
|
|
b"authority" => ExpressionVariable::Authority,
|
|
b"bcc" => ExpressionVariable::Bcc,
|
|
b"bcc.domain" => ExpressionVariable::BccDomain,
|
|
b"bcc.local" => ExpressionVariable::BccLocal,
|
|
b"bcc.name" => ExpressionVariable::BccName,
|
|
b"body" => ExpressionVariable::Body,
|
|
b"body.html" => ExpressionVariable::BodyHtml,
|
|
b"body.raw" => ExpressionVariable::BodyRaw,
|
|
b"body.text" => ExpressionVariable::BodyText,
|
|
b"body.words" => ExpressionVariable::BodyWords,
|
|
b"cc" => ExpressionVariable::Cc,
|
|
b"cc.domain" => ExpressionVariable::CcDomain,
|
|
b"cc.local" => ExpressionVariable::CcLocal,
|
|
b"cc.name" => ExpressionVariable::CcName,
|
|
b"country" => ExpressionVariable::Country,
|
|
b"domain" => ExpressionVariable::Domain,
|
|
b"email" => ExpressionVariable::Email,
|
|
b"email_lower" => ExpressionVariable::EmailLower,
|
|
b"env_from" => ExpressionVariable::EnvFrom,
|
|
b"env_from.domain" => ExpressionVariable::EnvFromDomain,
|
|
b"env_from.local" => ExpressionVariable::EnvFromLocal,
|
|
b"env_to" => ExpressionVariable::EnvTo,
|
|
b"expires_in" => ExpressionVariable::ExpiresIn,
|
|
b"from" => ExpressionVariable::From,
|
|
b"from.domain" => ExpressionVariable::FromDomain,
|
|
b"from.local" => ExpressionVariable::FromLocal,
|
|
b"from.name" => ExpressionVariable::FromName,
|
|
b"headers" => ExpressionVariable::Headers,
|
|
b"helo_domain" => ExpressionVariable::HeloDomain,
|
|
b"host" => ExpressionVariable::Host,
|
|
b"ip" => ExpressionVariable::Ip,
|
|
b"ip_reverse" => ExpressionVariable::IpReverse,
|
|
b"is_tls" => ExpressionVariable::IsTls,
|
|
b"is_v4" => ExpressionVariable::IsV4,
|
|
b"is_v6" => ExpressionVariable::IsV6,
|
|
b"last_error" => ExpressionVariable::LastError,
|
|
b"last_status" => ExpressionVariable::LastStatus,
|
|
b"listener" => ExpressionVariable::Listener,
|
|
b"local" => ExpressionVariable::Local,
|
|
b"local_ip" => ExpressionVariable::LocalIp,
|
|
b"local_port" => ExpressionVariable::LocalPort,
|
|
b"location" => ExpressionVariable::Location,
|
|
b"method" => ExpressionVariable::Method,
|
|
b"mx" => ExpressionVariable::Mx,
|
|
b"name" => ExpressionVariable::Name,
|
|
b"name_lower" => ExpressionVariable::NameLower,
|
|
b"notify_num" => ExpressionVariable::NotifyNum,
|
|
b"octets" => ExpressionVariable::Octets,
|
|
b"path" => ExpressionVariable::Path,
|
|
b"path_query" => ExpressionVariable::PathQuery,
|
|
b"port" => ExpressionVariable::Port,
|
|
b"priority" => ExpressionVariable::Priority,
|
|
b"protocol" => ExpressionVariable::Protocol,
|
|
b"query" => ExpressionVariable::Query,
|
|
b"queue_age" => ExpressionVariable::QueueAge,
|
|
b"queue_name" => ExpressionVariable::QueueName,
|
|
b"raw" => ExpressionVariable::Raw,
|
|
b"raw_lower" => ExpressionVariable::RawLower,
|
|
b"rcpt" => ExpressionVariable::Rcpt,
|
|
b"rcpt_domain" => ExpressionVariable::RcptDomain,
|
|
b"received_from_ip" => ExpressionVariable::ReceivedFromIp,
|
|
b"received_via_port" => ExpressionVariable::ReceivedViaPort,
|
|
b"recipients" => ExpressionVariable::Recipients,
|
|
b"remote_ip" => ExpressionVariable::RemoteIp,
|
|
b"remote_ip.ptr" => ExpressionVariable::RemoteIpPtr,
|
|
b"remote_port" => ExpressionVariable::RemotePort,
|
|
b"reply_to" => ExpressionVariable::ReplyTo,
|
|
b"reply_to.domain" => ExpressionVariable::ReplyToDomain,
|
|
b"reply_to.local" => ExpressionVariable::ReplyToLocal,
|
|
b"reply_to.name" => ExpressionVariable::ReplyToName,
|
|
b"retry_num" => ExpressionVariable::RetryNum,
|
|
b"reverse_ip" => ExpressionVariable::ReverseIp,
|
|
b"scheme" => ExpressionVariable::Scheme,
|
|
b"sender" => ExpressionVariable::Sender,
|
|
b"sender_domain" => ExpressionVariable::SenderDomain,
|
|
b"size" => ExpressionVariable::Size,
|
|
b"sld" => ExpressionVariable::Sld,
|
|
b"source" => ExpressionVariable::Source,
|
|
b"subject" => ExpressionVariable::Subject,
|
|
b"subject.thread" => ExpressionVariable::SubjectThread,
|
|
b"subject.words" => ExpressionVariable::SubjectWords,
|
|
b"to" => ExpressionVariable::To,
|
|
b"to.domain" => ExpressionVariable::ToDomain,
|
|
b"to.local" => ExpressionVariable::ToLocal,
|
|
b"to.name" => ExpressionVariable::ToName,
|
|
b"url" => ExpressionVariable::Url,
|
|
b"url_original" => ExpressionVariable::UrlOriginal,
|
|
b"value" => ExpressionVariable::Value,
|
|
b"value_lower" => ExpressionVariable::ValueLower,
|
|
}
|
|
.copied()
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ExpressionVariable::Asn => "asn",
|
|
ExpressionVariable::Attributes => "attributes",
|
|
ExpressionVariable::AuthenticatedAs => "authenticated_as",
|
|
ExpressionVariable::Authority => "authority",
|
|
ExpressionVariable::Bcc => "bcc",
|
|
ExpressionVariable::BccDomain => "bcc.domain",
|
|
ExpressionVariable::BccLocal => "bcc.local",
|
|
ExpressionVariable::BccName => "bcc.name",
|
|
ExpressionVariable::Body => "body",
|
|
ExpressionVariable::BodyHtml => "body.html",
|
|
ExpressionVariable::BodyRaw => "body.raw",
|
|
ExpressionVariable::BodyText => "body.text",
|
|
ExpressionVariable::BodyWords => "body.words",
|
|
ExpressionVariable::Cc => "cc",
|
|
ExpressionVariable::CcDomain => "cc.domain",
|
|
ExpressionVariable::CcLocal => "cc.local",
|
|
ExpressionVariable::CcName => "cc.name",
|
|
ExpressionVariable::Country => "country",
|
|
ExpressionVariable::Domain => "domain",
|
|
ExpressionVariable::Email => "email",
|
|
ExpressionVariable::EmailLower => "email_lower",
|
|
ExpressionVariable::EnvFrom => "env_from",
|
|
ExpressionVariable::EnvFromDomain => "env_from.domain",
|
|
ExpressionVariable::EnvFromLocal => "env_from.local",
|
|
ExpressionVariable::EnvTo => "env_to",
|
|
ExpressionVariable::ExpiresIn => "expires_in",
|
|
ExpressionVariable::From => "from",
|
|
ExpressionVariable::FromDomain => "from.domain",
|
|
ExpressionVariable::FromLocal => "from.local",
|
|
ExpressionVariable::FromName => "from.name",
|
|
ExpressionVariable::Headers => "headers",
|
|
ExpressionVariable::HeloDomain => "helo_domain",
|
|
ExpressionVariable::Host => "host",
|
|
ExpressionVariable::Ip => "ip",
|
|
ExpressionVariable::IpReverse => "ip_reverse",
|
|
ExpressionVariable::IsTls => "is_tls",
|
|
ExpressionVariable::IsV4 => "is_v4",
|
|
ExpressionVariable::IsV6 => "is_v6",
|
|
ExpressionVariable::LastError => "last_error",
|
|
ExpressionVariable::LastStatus => "last_status",
|
|
ExpressionVariable::Listener => "listener",
|
|
ExpressionVariable::Local => "local",
|
|
ExpressionVariable::LocalIp => "local_ip",
|
|
ExpressionVariable::LocalPort => "local_port",
|
|
ExpressionVariable::Location => "location",
|
|
ExpressionVariable::Method => "method",
|
|
ExpressionVariable::Mx => "mx",
|
|
ExpressionVariable::Name => "name",
|
|
ExpressionVariable::NameLower => "name_lower",
|
|
ExpressionVariable::NotifyNum => "notify_num",
|
|
ExpressionVariable::Octets => "octets",
|
|
ExpressionVariable::Path => "path",
|
|
ExpressionVariable::PathQuery => "path_query",
|
|
ExpressionVariable::Port => "port",
|
|
ExpressionVariable::Priority => "priority",
|
|
ExpressionVariable::Protocol => "protocol",
|
|
ExpressionVariable::Query => "query",
|
|
ExpressionVariable::QueueAge => "queue_age",
|
|
ExpressionVariable::QueueName => "queue_name",
|
|
ExpressionVariable::Raw => "raw",
|
|
ExpressionVariable::RawLower => "raw_lower",
|
|
ExpressionVariable::Rcpt => "rcpt",
|
|
ExpressionVariable::RcptDomain => "rcpt_domain",
|
|
ExpressionVariable::ReceivedFromIp => "received_from_ip",
|
|
ExpressionVariable::ReceivedViaPort => "received_via_port",
|
|
ExpressionVariable::Recipients => "recipients",
|
|
ExpressionVariable::RemoteIp => "remote_ip",
|
|
ExpressionVariable::RemoteIpPtr => "remote_ip.ptr",
|
|
ExpressionVariable::RemotePort => "remote_port",
|
|
ExpressionVariable::ReplyTo => "reply_to",
|
|
ExpressionVariable::ReplyToDomain => "reply_to.domain",
|
|
ExpressionVariable::ReplyToLocal => "reply_to.local",
|
|
ExpressionVariable::ReplyToName => "reply_to.name",
|
|
ExpressionVariable::RetryNum => "retry_num",
|
|
ExpressionVariable::ReverseIp => "reverse_ip",
|
|
ExpressionVariable::Scheme => "scheme",
|
|
ExpressionVariable::Sender => "sender",
|
|
ExpressionVariable::SenderDomain => "sender_domain",
|
|
ExpressionVariable::Size => "size",
|
|
ExpressionVariable::Sld => "sld",
|
|
ExpressionVariable::Source => "source",
|
|
ExpressionVariable::Subject => "subject",
|
|
ExpressionVariable::SubjectThread => "subject.thread",
|
|
ExpressionVariable::SubjectWords => "subject.words",
|
|
ExpressionVariable::To => "to",
|
|
ExpressionVariable::ToDomain => "to.domain",
|
|
ExpressionVariable::ToLocal => "to.local",
|
|
ExpressionVariable::ToName => "to.name",
|
|
ExpressionVariable::Url => "url",
|
|
ExpressionVariable::UrlOriginal => "url_original",
|
|
ExpressionVariable::Value => "value",
|
|
ExpressionVariable::ValueLower => "value_lower",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ExpressionVariable::Asn),
|
|
1 => Some(ExpressionVariable::Attributes),
|
|
2 => Some(ExpressionVariable::AuthenticatedAs),
|
|
3 => Some(ExpressionVariable::Authority),
|
|
4 => Some(ExpressionVariable::Bcc),
|
|
5 => Some(ExpressionVariable::BccDomain),
|
|
6 => Some(ExpressionVariable::BccLocal),
|
|
7 => Some(ExpressionVariable::BccName),
|
|
8 => Some(ExpressionVariable::Body),
|
|
9 => Some(ExpressionVariable::BodyHtml),
|
|
10 => Some(ExpressionVariable::BodyRaw),
|
|
11 => Some(ExpressionVariable::BodyText),
|
|
12 => Some(ExpressionVariable::BodyWords),
|
|
13 => Some(ExpressionVariable::Cc),
|
|
14 => Some(ExpressionVariable::CcDomain),
|
|
15 => Some(ExpressionVariable::CcLocal),
|
|
16 => Some(ExpressionVariable::CcName),
|
|
17 => Some(ExpressionVariable::Country),
|
|
18 => Some(ExpressionVariable::Domain),
|
|
19 => Some(ExpressionVariable::Email),
|
|
20 => Some(ExpressionVariable::EmailLower),
|
|
21 => Some(ExpressionVariable::EnvFrom),
|
|
22 => Some(ExpressionVariable::EnvFromDomain),
|
|
23 => Some(ExpressionVariable::EnvFromLocal),
|
|
24 => Some(ExpressionVariable::EnvTo),
|
|
25 => Some(ExpressionVariable::ExpiresIn),
|
|
26 => Some(ExpressionVariable::From),
|
|
27 => Some(ExpressionVariable::FromDomain),
|
|
28 => Some(ExpressionVariable::FromLocal),
|
|
29 => Some(ExpressionVariable::FromName),
|
|
30 => Some(ExpressionVariable::Headers),
|
|
31 => Some(ExpressionVariable::HeloDomain),
|
|
32 => Some(ExpressionVariable::Host),
|
|
33 => Some(ExpressionVariable::Ip),
|
|
34 => Some(ExpressionVariable::IpReverse),
|
|
35 => Some(ExpressionVariable::IsTls),
|
|
36 => Some(ExpressionVariable::IsV4),
|
|
37 => Some(ExpressionVariable::IsV6),
|
|
38 => Some(ExpressionVariable::LastError),
|
|
39 => Some(ExpressionVariable::LastStatus),
|
|
40 => Some(ExpressionVariable::Listener),
|
|
41 => Some(ExpressionVariable::Local),
|
|
42 => Some(ExpressionVariable::LocalIp),
|
|
43 => Some(ExpressionVariable::LocalPort),
|
|
44 => Some(ExpressionVariable::Location),
|
|
45 => Some(ExpressionVariable::Method),
|
|
46 => Some(ExpressionVariable::Mx),
|
|
47 => Some(ExpressionVariable::Name),
|
|
48 => Some(ExpressionVariable::NameLower),
|
|
49 => Some(ExpressionVariable::NotifyNum),
|
|
50 => Some(ExpressionVariable::Octets),
|
|
51 => Some(ExpressionVariable::Path),
|
|
52 => Some(ExpressionVariable::PathQuery),
|
|
53 => Some(ExpressionVariable::Port),
|
|
54 => Some(ExpressionVariable::Priority),
|
|
55 => Some(ExpressionVariable::Protocol),
|
|
56 => Some(ExpressionVariable::Query),
|
|
57 => Some(ExpressionVariable::QueueAge),
|
|
58 => Some(ExpressionVariable::QueueName),
|
|
59 => Some(ExpressionVariable::Raw),
|
|
60 => Some(ExpressionVariable::RawLower),
|
|
61 => Some(ExpressionVariable::Rcpt),
|
|
62 => Some(ExpressionVariable::RcptDomain),
|
|
63 => Some(ExpressionVariable::ReceivedFromIp),
|
|
64 => Some(ExpressionVariable::ReceivedViaPort),
|
|
65 => Some(ExpressionVariable::Recipients),
|
|
66 => Some(ExpressionVariable::RemoteIp),
|
|
67 => Some(ExpressionVariable::RemoteIpPtr),
|
|
68 => Some(ExpressionVariable::RemotePort),
|
|
69 => Some(ExpressionVariable::ReplyTo),
|
|
70 => Some(ExpressionVariable::ReplyToDomain),
|
|
71 => Some(ExpressionVariable::ReplyToLocal),
|
|
72 => Some(ExpressionVariable::ReplyToName),
|
|
73 => Some(ExpressionVariable::RetryNum),
|
|
74 => Some(ExpressionVariable::ReverseIp),
|
|
75 => Some(ExpressionVariable::Scheme),
|
|
76 => Some(ExpressionVariable::Sender),
|
|
77 => Some(ExpressionVariable::SenderDomain),
|
|
78 => Some(ExpressionVariable::Size),
|
|
79 => Some(ExpressionVariable::Sld),
|
|
80 => Some(ExpressionVariable::Source),
|
|
81 => Some(ExpressionVariable::Subject),
|
|
82 => Some(ExpressionVariable::SubjectThread),
|
|
83 => Some(ExpressionVariable::SubjectWords),
|
|
84 => Some(ExpressionVariable::To),
|
|
85 => Some(ExpressionVariable::ToDomain),
|
|
86 => Some(ExpressionVariable::ToLocal),
|
|
87 => Some(ExpressionVariable::ToName),
|
|
88 => Some(ExpressionVariable::Url),
|
|
89 => Some(ExpressionVariable::UrlOriginal),
|
|
90 => Some(ExpressionVariable::Value),
|
|
91 => Some(ExpressionVariable::ValueLower),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 92;
|
|
}
|
|
|
|
impl serde::Serialize for ExpressionVariable {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ExpressionVariable {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for FailureReportingOption {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"all" => FailureReportingOption::All,
|
|
b"any" => FailureReportingOption::Any,
|
|
b"dkimFailure" => FailureReportingOption::DkimFailure,
|
|
b"spfFailure" => FailureReportingOption::SpfFailure,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
FailureReportingOption::All => "all",
|
|
FailureReportingOption::Any => "any",
|
|
FailureReportingOption::DkimFailure => "dkimFailure",
|
|
FailureReportingOption::SpfFailure => "spfFailure",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(FailureReportingOption::All),
|
|
1 => Some(FailureReportingOption::Any),
|
|
2 => Some(FailureReportingOption::DkimFailure),
|
|
3 => Some(FailureReportingOption::SpfFailure),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for FailureReportingOption {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for FailureReportingOption {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for HttpAuthType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Unauthenticated" => HttpAuthType::Unauthenticated,
|
|
b"Basic" => HttpAuthType::Basic,
|
|
b"Bearer" => HttpAuthType::Bearer,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
HttpAuthType::Unauthenticated => "Unauthenticated",
|
|
HttpAuthType::Basic => "Basic",
|
|
HttpAuthType::Bearer => "Bearer",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(HttpAuthType::Unauthenticated),
|
|
1 => Some(HttpAuthType::Basic),
|
|
2 => Some(HttpAuthType::Bearer),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for HttpAuthType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for HttpAuthType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for HttpLookupFormatType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Csv" => HttpLookupFormatType::Csv,
|
|
b"List" => HttpLookupFormatType::List,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
HttpLookupFormatType::Csv => "Csv",
|
|
HttpLookupFormatType::List => "List",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(HttpLookupFormatType::Csv),
|
|
1 => Some(HttpLookupFormatType::List),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for HttpLookupFormatType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for HttpLookupFormatType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for InMemoryStoreBaseType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Redis" => InMemoryStoreBaseType::Redis,
|
|
b"RedisCluster" => InMemoryStoreBaseType::RedisCluster,
|
|
b"RedisSentinel" => InMemoryStoreBaseType::RedisSentinel,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
InMemoryStoreBaseType::Redis => "Redis",
|
|
InMemoryStoreBaseType::RedisCluster => "RedisCluster",
|
|
InMemoryStoreBaseType::RedisSentinel => "RedisSentinel",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(InMemoryStoreBaseType::Redis),
|
|
1 => Some(InMemoryStoreBaseType::RedisCluster),
|
|
2 => Some(InMemoryStoreBaseType::RedisSentinel),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for InMemoryStoreBaseType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for InMemoryStoreBaseType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for InMemoryStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Default" => InMemoryStoreType::Default,
|
|
b"Sharded" => InMemoryStoreType::Sharded,
|
|
b"Redis" => InMemoryStoreType::Redis,
|
|
b"RedisCluster" => InMemoryStoreType::RedisCluster,
|
|
b"RedisSentinel" => InMemoryStoreType::RedisSentinel,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
InMemoryStoreType::Default => "Default",
|
|
InMemoryStoreType::Sharded => "Sharded",
|
|
InMemoryStoreType::Redis => "Redis",
|
|
InMemoryStoreType::RedisCluster => "RedisCluster",
|
|
InMemoryStoreType::RedisSentinel => "RedisSentinel",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(InMemoryStoreType::Default),
|
|
1 => Some(InMemoryStoreType::Sharded),
|
|
2 => Some(InMemoryStoreType::Redis),
|
|
3 => Some(InMemoryStoreType::RedisCluster),
|
|
4 => Some(InMemoryStoreType::RedisSentinel),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for InMemoryStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for InMemoryStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for IndexDocumentType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"email" => IndexDocumentType::Email,
|
|
b"calendar" => IndexDocumentType::Calendar,
|
|
b"contacts" => IndexDocumentType::Contacts,
|
|
b"file" => IndexDocumentType::File,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
IndexDocumentType::Email => "email",
|
|
IndexDocumentType::Calendar => "calendar",
|
|
IndexDocumentType::Contacts => "contacts",
|
|
IndexDocumentType::File => "file",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(IndexDocumentType::Email),
|
|
1 => Some(IndexDocumentType::Calendar),
|
|
2 => Some(IndexDocumentType::Contacts),
|
|
3 => Some(IndexDocumentType::File),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for IndexDocumentType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for IndexDocumentType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for IpProtocol {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"udp" => IpProtocol::Udp,
|
|
b"tcp" => IpProtocol::Tcp,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
IpProtocol::Udp => "udp",
|
|
IpProtocol::Tcp => "tcp",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(IpProtocol::Udp),
|
|
1 => Some(IpProtocol::Tcp),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for IpProtocol {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for IpProtocol {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for JokerAuthType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"ApiKey" => JokerAuthType::ApiKey,
|
|
b"UsernamePassword" => JokerAuthType::UsernamePassword,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
JokerAuthType::ApiKey => "ApiKey",
|
|
JokerAuthType::UsernamePassword => "UsernamePassword",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(JokerAuthType::ApiKey),
|
|
1 => Some(JokerAuthType::UsernamePassword),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for JokerAuthType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for JokerAuthType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for JwtSignatureAlgorithm {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"es256" => JwtSignatureAlgorithm::Es256,
|
|
b"es384" => JwtSignatureAlgorithm::Es384,
|
|
b"ps256" => JwtSignatureAlgorithm::Ps256,
|
|
b"ps384" => JwtSignatureAlgorithm::Ps384,
|
|
b"ps512" => JwtSignatureAlgorithm::Ps512,
|
|
b"rs256" => JwtSignatureAlgorithm::Rs256,
|
|
b"rs384" => JwtSignatureAlgorithm::Rs384,
|
|
b"rs512" => JwtSignatureAlgorithm::Rs512,
|
|
b"hs256" => JwtSignatureAlgorithm::Hs256,
|
|
b"hs384" => JwtSignatureAlgorithm::Hs384,
|
|
b"hs512" => JwtSignatureAlgorithm::Hs512,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
JwtSignatureAlgorithm::Es256 => "es256",
|
|
JwtSignatureAlgorithm::Es384 => "es384",
|
|
JwtSignatureAlgorithm::Ps256 => "ps256",
|
|
JwtSignatureAlgorithm::Ps384 => "ps384",
|
|
JwtSignatureAlgorithm::Ps512 => "ps512",
|
|
JwtSignatureAlgorithm::Rs256 => "rs256",
|
|
JwtSignatureAlgorithm::Rs384 => "rs384",
|
|
JwtSignatureAlgorithm::Rs512 => "rs512",
|
|
JwtSignatureAlgorithm::Hs256 => "hs256",
|
|
JwtSignatureAlgorithm::Hs384 => "hs384",
|
|
JwtSignatureAlgorithm::Hs512 => "hs512",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(JwtSignatureAlgorithm::Es256),
|
|
1 => Some(JwtSignatureAlgorithm::Es384),
|
|
2 => Some(JwtSignatureAlgorithm::Ps256),
|
|
3 => Some(JwtSignatureAlgorithm::Ps384),
|
|
4 => Some(JwtSignatureAlgorithm::Ps512),
|
|
5 => Some(JwtSignatureAlgorithm::Rs256),
|
|
6 => Some(JwtSignatureAlgorithm::Rs384),
|
|
7 => Some(JwtSignatureAlgorithm::Rs512),
|
|
8 => Some(JwtSignatureAlgorithm::Hs256),
|
|
9 => Some(JwtSignatureAlgorithm::Hs384),
|
|
10 => Some(JwtSignatureAlgorithm::Hs512),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 11;
|
|
}
|
|
|
|
impl serde::Serialize for JwtSignatureAlgorithm {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for JwtSignatureAlgorithm {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for Locale {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::map! {
|
|
value.as_bytes(),
|
|
Locale,
|
|
b"en-US" => Locale::EnUS,
|
|
b"aa-DJ" => Locale::AaDJ,
|
|
b"aa-ER" => Locale::AaER,
|
|
b"ssy-ER" => Locale::SsyER,
|
|
b"aa-ET" => Locale::AaET,
|
|
b"af-ZA" => Locale::AfZA,
|
|
b"agr-PE" => Locale::AgrPE,
|
|
b"ak-GH" => Locale::AkGH,
|
|
b"am-ET" => Locale::AmET,
|
|
b"an-ES" => Locale::AnES,
|
|
b"anp-IN" => Locale::AnpIN,
|
|
b"ar-AE" => Locale::ArAE,
|
|
b"ar-BH" => Locale::ArBH,
|
|
b"ar-DZ" => Locale::ArDZ,
|
|
b"ar-EG" => Locale::ArEG,
|
|
b"ar-IN" => Locale::ArIN,
|
|
b"ar-IQ" => Locale::ArIQ,
|
|
b"ar-JO" => Locale::ArJO,
|
|
b"ar-KW" => Locale::ArKW,
|
|
b"ar-LB" => Locale::ArLB,
|
|
b"ar-LY" => Locale::ArLY,
|
|
b"ar-MA" => Locale::ArMA,
|
|
b"ar-OM" => Locale::ArOM,
|
|
b"ar-QA" => Locale::ArQA,
|
|
b"ar-SA" => Locale::ArSA,
|
|
b"ar-SD" => Locale::ArSD,
|
|
b"ar-SS" => Locale::ArSS,
|
|
b"ar-SY" => Locale::ArSY,
|
|
b"ar-TN" => Locale::ArTN,
|
|
b"ar-YE" => Locale::ArYE,
|
|
b"as-IN" => Locale::AsIN,
|
|
b"ast-ES" => Locale::AstES,
|
|
b"ayc-PE" => Locale::AycPE,
|
|
b"az-AZ" => Locale::AzAZ,
|
|
b"az-IR" => Locale::AzIR,
|
|
b"be-BY" => Locale::BeBY,
|
|
b"be-Latn-BY" => Locale::BeLatnBY,
|
|
b"bem-ZM" => Locale::BemZM,
|
|
b"ber-DZ" => Locale::BerDZ,
|
|
b"ber-MA" => Locale::BerMA,
|
|
b"bg-BG" => Locale::BgBG,
|
|
b"bhb-IN" => Locale::BhbIN,
|
|
b"bho-IN" => Locale::BhoIN,
|
|
b"bho-NP" => Locale::BhoNP,
|
|
b"bi-VU" => Locale::BiVU,
|
|
b"bn-BD" => Locale::BnBD,
|
|
b"bn-IN" => Locale::BnIN,
|
|
b"bo-CN" => Locale::BoCN,
|
|
b"bo-IN" => Locale::BoIN,
|
|
b"br-FR" => Locale::BrFR,
|
|
b"es-419" => Locale::Es419,
|
|
b"brx-IN" => Locale::BrxIN,
|
|
b"bs-BA" => Locale::BsBA,
|
|
b"byn-ER" => Locale::BynER,
|
|
b"ca-AD" => Locale::CaAD,
|
|
b"ca-ES" => Locale::CaES,
|
|
b"en-150" => Locale::En150,
|
|
b"ca-ES-valencia" => Locale::CaESValencia,
|
|
b"ca-FR" => Locale::CaFR,
|
|
b"ca-IT" => Locale::CaIT,
|
|
b"ce-RU" => Locale::CeRU,
|
|
b"chr-US" => Locale::ChrUS,
|
|
b"cmn-TW" => Locale::CmnTW,
|
|
b"crh-UA" => Locale::CrhUA,
|
|
b"cs-CZ" => Locale::CsCZ,
|
|
b"csb-PL" => Locale::CsbPL,
|
|
b"cv-RU" => Locale::CvRU,
|
|
b"cy-GB" => Locale::CyGB,
|
|
b"da-DK" => Locale::DaDK,
|
|
b"de-AT" => Locale::DeAT,
|
|
b"de-BE" => Locale::DeBE,
|
|
b"en-001" => Locale::En001,
|
|
b"de-CH" => Locale::DeCH,
|
|
b"de-DE" => Locale::DeDE,
|
|
b"de-IT" => Locale::DeIT,
|
|
b"de-LI" => Locale::DeLI,
|
|
b"de-LU" => Locale::DeLU,
|
|
b"ar-001" => Locale::Ar001,
|
|
b"doi-IN" => Locale::DoiIN,
|
|
b"dsb-DE" => Locale::DsbDE,
|
|
b"dv-MV" => Locale::DvMV,
|
|
b"dz-BT" => Locale::DzBT,
|
|
b"el-CY" => Locale::ElCY,
|
|
b"el-GR" => Locale::ElGR,
|
|
b"en-AG" => Locale::EnAG,
|
|
b"en-AU" => Locale::EnAU,
|
|
b"en-BW" => Locale::EnBW,
|
|
b"en-CA" => Locale::EnCA,
|
|
b"en-DK" => Locale::EnDK,
|
|
b"en-GB" => Locale::EnGB,
|
|
b"en-HK" => Locale::EnHK,
|
|
b"en-IE" => Locale::EnIE,
|
|
b"en-IL" => Locale::EnIL,
|
|
b"en-IN" => Locale::EnIN,
|
|
b"en-NG" => Locale::EnNG,
|
|
b"en-NZ" => Locale::EnNZ,
|
|
b"en-PH" => Locale::EnPH,
|
|
b"en-SC" => Locale::EnSC,
|
|
b"en-SG" => Locale::EnSG,
|
|
b"en-ZA" => Locale::EnZA,
|
|
b"en-ZM" => Locale::EnZM,
|
|
b"en-ZW" => Locale::EnZW,
|
|
b"eo" => Locale::Eo,
|
|
b"es-AR" => Locale::EsAR,
|
|
b"es-BO" => Locale::EsBO,
|
|
b"es-CL" => Locale::EsCL,
|
|
b"es-CO" => Locale::EsCO,
|
|
b"es-CR" => Locale::EsCR,
|
|
b"es-CU" => Locale::EsCU,
|
|
b"es-DO" => Locale::EsDO,
|
|
b"es-EC" => Locale::EsEC,
|
|
b"es-ES" => Locale::EsES,
|
|
b"es-GT" => Locale::EsGT,
|
|
b"es-HN" => Locale::EsHN,
|
|
b"es-MX" => Locale::EsMX,
|
|
b"es-NI" => Locale::EsNI,
|
|
b"es-PA" => Locale::EsPA,
|
|
b"es-PE" => Locale::EsPE,
|
|
b"es-PR" => Locale::EsPR,
|
|
b"es-PY" => Locale::EsPY,
|
|
b"es-SV" => Locale::EsSV,
|
|
b"es-US" => Locale::EsUS,
|
|
b"es-UY" => Locale::EsUY,
|
|
b"es-VE" => Locale::EsVE,
|
|
b"et-EE" => Locale::EtEE,
|
|
b"eu-ES" => Locale::EuES,
|
|
b"zh-Hans" => Locale::ZhHans,
|
|
b"fa-IR" => Locale::FaIR,
|
|
b"ff-SN" => Locale::FfSN,
|
|
b"fi-FI" => Locale::FiFI,
|
|
b"fil-PH" => Locale::FilPH,
|
|
b"fo-FO" => Locale::FoFO,
|
|
b"fr-BE" => Locale::FrBE,
|
|
b"fr-CA" => Locale::FrCA,
|
|
b"fr-CH" => Locale::FrCH,
|
|
b"fr-FR" => Locale::FrFR,
|
|
b"fr-LU" => Locale::FrLU,
|
|
b"zh-Hant" => Locale::ZhHant,
|
|
b"fur-IT" => Locale::FurIT,
|
|
b"fy-DE" => Locale::FyDE,
|
|
b"fy-NL" => Locale::FyNL,
|
|
b"ga-IE" => Locale::GaIE,
|
|
b"zh-Hant-HK" => Locale::ZhHantHK,
|
|
b"gd-GB" => Locale::GdGB,
|
|
b"gez-ER" => Locale::GezER,
|
|
b"sr-Latn-BA" => Locale::SrLatnBA,
|
|
b"gez-ET" => Locale::GezET,
|
|
b"sr-Latn-ME" => Locale::SrLatnME,
|
|
b"gl-ES" => Locale::GlES,
|
|
b"az-Latn-AZ" => Locale::AzLatnAZ,
|
|
b"gu-IN" => Locale::GuIN,
|
|
b"gv-GB" => Locale::GvGB,
|
|
b"ha-NG" => Locale::HaNG,
|
|
b"hak-TW" => Locale::HakTW,
|
|
b"he-IL" => Locale::HeIL,
|
|
b"hi-IN" => Locale::HiIN,
|
|
b"hif-FJ" => Locale::HifFJ,
|
|
b"hne-IN" => Locale::HneIN,
|
|
b"hr-HR" => Locale::HrHR,
|
|
b"hsb-DE" => Locale::HsbDE,
|
|
b"ht-HT" => Locale::HtHT,
|
|
b"hu-HU" => Locale::HuHU,
|
|
b"hy-AM" => Locale::HyAM,
|
|
b"ia-FR" => Locale::IaFR,
|
|
b"id-ID" => Locale::IdID,
|
|
b"ig-NG" => Locale::IgNG,
|
|
b"ik-CA" => Locale::IkCA,
|
|
b"is-IS" => Locale::IsIS,
|
|
b"it-CH" => Locale::ItCH,
|
|
b"it-IT" => Locale::ItIT,
|
|
b"iu-CA" => Locale::IuCA,
|
|
b"ja-JP" => Locale::JaJP,
|
|
b"ka-GE" => Locale::KaGE,
|
|
b"kab-DZ" => Locale::KabDZ,
|
|
b"kk-KZ" => Locale::KkKZ,
|
|
b"kl-GL" => Locale::KlGL,
|
|
b"km-KH" => Locale::KmKH,
|
|
b"kn-IN" => Locale::KnIN,
|
|
b"ko-KR" => Locale::KoKR,
|
|
b"kok-IN" => Locale::KokIN,
|
|
b"ks-IN" => Locale::KsIN,
|
|
b"ks-Deva-IN" => Locale::KsDevaIN,
|
|
b"ku-TR" => Locale::KuTR,
|
|
b"kw-GB" => Locale::KwGB,
|
|
b"ky-KG" => Locale::KyKG,
|
|
b"lb-LU" => Locale::LbLU,
|
|
b"lg-UG" => Locale::LgUG,
|
|
b"li-BE" => Locale::LiBE,
|
|
b"li-NL" => Locale::LiNL,
|
|
b"lij-IT" => Locale::LijIT,
|
|
b"ln-CD" => Locale::LnCD,
|
|
b"lo-LA" => Locale::LoLA,
|
|
b"lt-LT" => Locale::LtLT,
|
|
b"lv-LV" => Locale::LvLV,
|
|
b"lzh-TW" => Locale::LzhTW,
|
|
b"mag-IN" => Locale::MagIN,
|
|
b"mai-IN" => Locale::MaiIN,
|
|
b"mai-NP" => Locale::MaiNP,
|
|
b"mfe-MU" => Locale::MfeMU,
|
|
b"mg-MG" => Locale::MgMG,
|
|
b"mhr-RU" => Locale::MhrRU,
|
|
b"mi-NZ" => Locale::MiNZ,
|
|
b"miq-NI" => Locale::MiqNI,
|
|
b"mjw-IN" => Locale::MjwIN,
|
|
b"mk-MK" => Locale::MkMK,
|
|
b"ml-IN" => Locale::MlIN,
|
|
b"mn-MN" => Locale::MnMN,
|
|
b"mni-IN" => Locale::MniIN,
|
|
b"mnw-MM" => Locale::MnwMM,
|
|
b"mr-IN" => Locale::MrIN,
|
|
b"ms-MY" => Locale::MsMY,
|
|
b"mt-MT" => Locale::MtMT,
|
|
b"my-MM" => Locale::MyMM,
|
|
b"nan-TW" => Locale::NanTW,
|
|
b"nan-Latn-TW" => Locale::NanLatnTW,
|
|
b"nb-NO" => Locale::NbNO,
|
|
b"nds-DE" => Locale::NdsDE,
|
|
b"nds-NL" => Locale::NdsNL,
|
|
b"ne-NP" => Locale::NeNP,
|
|
b"nhn-MX" => Locale::NhnMX,
|
|
b"niu-NU" => Locale::NiuNU,
|
|
b"niu-NZ" => Locale::NiuNZ,
|
|
b"nl-AW" => Locale::NlAW,
|
|
b"nl-BE" => Locale::NlBE,
|
|
b"nl-NL" => Locale::NlNL,
|
|
b"nn-NO" => Locale::NnNO,
|
|
b"nr-ZA" => Locale::NrZA,
|
|
b"nso-ZA" => Locale::NsoZA,
|
|
b"oc-FR" => Locale::OcFR,
|
|
b"om-ET" => Locale::OmET,
|
|
b"om-KE" => Locale::OmKE,
|
|
b"or-IN" => Locale::OrIN,
|
|
b"os-RU" => Locale::OsRU,
|
|
b"pa-IN" => Locale::PaIN,
|
|
b"pa-PK" => Locale::PaPK,
|
|
b"pap-AW" => Locale::PapAW,
|
|
b"pap-CW" => Locale::PapCW,
|
|
b"pl-PL" => Locale::PlPL,
|
|
b"ps-AF" => Locale::PsAF,
|
|
b"pt-BR" => Locale::PtBR,
|
|
b"pt-PT" => Locale::PtPT,
|
|
b"quz-PE" => Locale::QuzPE,
|
|
b"raj-IN" => Locale::RajIN,
|
|
b"ro-RO" => Locale::RoRO,
|
|
b"ru-RU" => Locale::RuRU,
|
|
b"ru-UA" => Locale::RuUA,
|
|
b"rw-RW" => Locale::RwRW,
|
|
b"sa-IN" => Locale::SaIN,
|
|
b"sah-RU" => Locale::SahRU,
|
|
b"sat-IN" => Locale::SatIN,
|
|
b"sc-IT" => Locale::ScIT,
|
|
b"sd-IN" => Locale::SdIN,
|
|
b"sd-Deva-IN" => Locale::SdDevaIN,
|
|
b"se-NO" => Locale::SeNO,
|
|
b"sgs-LT" => Locale::SgsLT,
|
|
b"shn-MM" => Locale::ShnMM,
|
|
b"shs-CA" => Locale::ShsCA,
|
|
b"si-LK" => Locale::SiLK,
|
|
b"sid-ET" => Locale::SidET,
|
|
b"sk-SK" => Locale::SkSK,
|
|
b"sl-SI" => Locale::SlSI,
|
|
b"sm-WS" => Locale::SmWS,
|
|
b"so-DJ" => Locale::SoDJ,
|
|
b"so-ET" => Locale::SoET,
|
|
b"so-KE" => Locale::SoKE,
|
|
b"so-SO" => Locale::SoSO,
|
|
b"sq-AL" => Locale::SqAL,
|
|
b"sq-MK" => Locale::SqMK,
|
|
b"sr-ME" => Locale::SrME,
|
|
b"sr-RS" => Locale::SrRS,
|
|
b"sr-Latn-RS" => Locale::SrLatnRS,
|
|
b"ss-ZA" => Locale::SsZA,
|
|
b"st-ZA" => Locale::StZA,
|
|
b"sv-FI" => Locale::SvFI,
|
|
b"sv-SE" => Locale::SvSE,
|
|
b"sw-KE" => Locale::SwKE,
|
|
b"sw-TZ" => Locale::SwTZ,
|
|
b"szl-PL" => Locale::SzlPL,
|
|
b"ta-IN" => Locale::TaIN,
|
|
b"ta-LK" => Locale::TaLK,
|
|
b"tcy-IN" => Locale::TcyIN,
|
|
b"te-IN" => Locale::TeIN,
|
|
b"tg-TJ" => Locale::TgTJ,
|
|
b"th-TH" => Locale::ThTH,
|
|
b"the-NP" => Locale::TheNP,
|
|
b"ti-ER" => Locale::TiER,
|
|
b"ti-ET" => Locale::TiET,
|
|
b"tig-ER" => Locale::TigER,
|
|
b"tk-TM" => Locale::TkTM,
|
|
b"tl-PH" => Locale::TlPH,
|
|
b"tn-ZA" => Locale::TnZA,
|
|
b"to-TO" => Locale::ToTO,
|
|
b"tpi-PG" => Locale::TpiPG,
|
|
b"tr-CY" => Locale::TrCY,
|
|
b"tr-TR" => Locale::TrTR,
|
|
b"ts-ZA" => Locale::TsZA,
|
|
b"tt-RU" => Locale::TtRU,
|
|
b"tt-Latn-RU" => Locale::TtLatnRU,
|
|
b"ug-CN" => Locale::UgCN,
|
|
b"uk-UA" => Locale::UkUA,
|
|
b"unm-US" => Locale::UnmUS,
|
|
b"ur-IN" => Locale::UrIN,
|
|
b"ur-PK" => Locale::UrPK,
|
|
b"uz-UZ" => Locale::UzUZ,
|
|
b"uz-Cyrl-UZ" => Locale::UzCyrlUZ,
|
|
b"ve-ZA" => Locale::VeZA,
|
|
b"vi-VN" => Locale::ViVN,
|
|
b"wa-BE" => Locale::WaBE,
|
|
b"uz-Latn-UZ" => Locale::UzLatnUZ,
|
|
b"wae-CH" => Locale::WaeCH,
|
|
b"wal-ET" => Locale::WalET,
|
|
b"wo-SN" => Locale::WoSN,
|
|
b"xh-ZA" => Locale::XhZA,
|
|
b"yi-US" => Locale::YiUS,
|
|
b"yo-NG" => Locale::YoNG,
|
|
b"yue-HK" => Locale::YueHK,
|
|
b"yuw-PG" => Locale::YuwPG,
|
|
b"zh-CN" => Locale::ZhCN,
|
|
b"zh-HK" => Locale::ZhHK,
|
|
b"zh-SG" => Locale::ZhSG,
|
|
b"zh-TW" => Locale::ZhTW,
|
|
b"zu-ZA" => Locale::ZuZA,
|
|
}
|
|
.copied()
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
Locale::EnUS => "en-US",
|
|
Locale::AaDJ => "aa-DJ",
|
|
Locale::AaER => "aa-ER",
|
|
Locale::SsyER => "ssy-ER",
|
|
Locale::AaET => "aa-ET",
|
|
Locale::AfZA => "af-ZA",
|
|
Locale::AgrPE => "agr-PE",
|
|
Locale::AkGH => "ak-GH",
|
|
Locale::AmET => "am-ET",
|
|
Locale::AnES => "an-ES",
|
|
Locale::AnpIN => "anp-IN",
|
|
Locale::ArAE => "ar-AE",
|
|
Locale::ArBH => "ar-BH",
|
|
Locale::ArDZ => "ar-DZ",
|
|
Locale::ArEG => "ar-EG",
|
|
Locale::ArIN => "ar-IN",
|
|
Locale::ArIQ => "ar-IQ",
|
|
Locale::ArJO => "ar-JO",
|
|
Locale::ArKW => "ar-KW",
|
|
Locale::ArLB => "ar-LB",
|
|
Locale::ArLY => "ar-LY",
|
|
Locale::ArMA => "ar-MA",
|
|
Locale::ArOM => "ar-OM",
|
|
Locale::ArQA => "ar-QA",
|
|
Locale::ArSA => "ar-SA",
|
|
Locale::ArSD => "ar-SD",
|
|
Locale::ArSS => "ar-SS",
|
|
Locale::ArSY => "ar-SY",
|
|
Locale::ArTN => "ar-TN",
|
|
Locale::ArYE => "ar-YE",
|
|
Locale::AsIN => "as-IN",
|
|
Locale::AstES => "ast-ES",
|
|
Locale::AycPE => "ayc-PE",
|
|
Locale::AzAZ => "az-AZ",
|
|
Locale::AzIR => "az-IR",
|
|
Locale::BeBY => "be-BY",
|
|
Locale::BeLatnBY => "be-Latn-BY",
|
|
Locale::BemZM => "bem-ZM",
|
|
Locale::BerDZ => "ber-DZ",
|
|
Locale::BerMA => "ber-MA",
|
|
Locale::BgBG => "bg-BG",
|
|
Locale::BhbIN => "bhb-IN",
|
|
Locale::BhoIN => "bho-IN",
|
|
Locale::BhoNP => "bho-NP",
|
|
Locale::BiVU => "bi-VU",
|
|
Locale::BnBD => "bn-BD",
|
|
Locale::BnIN => "bn-IN",
|
|
Locale::BoCN => "bo-CN",
|
|
Locale::BoIN => "bo-IN",
|
|
Locale::BrFR => "br-FR",
|
|
Locale::Es419 => "es-419",
|
|
Locale::BrxIN => "brx-IN",
|
|
Locale::BsBA => "bs-BA",
|
|
Locale::BynER => "byn-ER",
|
|
Locale::CaAD => "ca-AD",
|
|
Locale::CaES => "ca-ES",
|
|
Locale::En150 => "en-150",
|
|
Locale::CaESValencia => "ca-ES-valencia",
|
|
Locale::CaFR => "ca-FR",
|
|
Locale::CaIT => "ca-IT",
|
|
Locale::CeRU => "ce-RU",
|
|
Locale::ChrUS => "chr-US",
|
|
Locale::CmnTW => "cmn-TW",
|
|
Locale::CrhUA => "crh-UA",
|
|
Locale::CsCZ => "cs-CZ",
|
|
Locale::CsbPL => "csb-PL",
|
|
Locale::CvRU => "cv-RU",
|
|
Locale::CyGB => "cy-GB",
|
|
Locale::DaDK => "da-DK",
|
|
Locale::DeAT => "de-AT",
|
|
Locale::DeBE => "de-BE",
|
|
Locale::En001 => "en-001",
|
|
Locale::DeCH => "de-CH",
|
|
Locale::DeDE => "de-DE",
|
|
Locale::DeIT => "de-IT",
|
|
Locale::DeLI => "de-LI",
|
|
Locale::DeLU => "de-LU",
|
|
Locale::Ar001 => "ar-001",
|
|
Locale::DoiIN => "doi-IN",
|
|
Locale::DsbDE => "dsb-DE",
|
|
Locale::DvMV => "dv-MV",
|
|
Locale::DzBT => "dz-BT",
|
|
Locale::ElCY => "el-CY",
|
|
Locale::ElGR => "el-GR",
|
|
Locale::EnAG => "en-AG",
|
|
Locale::EnAU => "en-AU",
|
|
Locale::EnBW => "en-BW",
|
|
Locale::EnCA => "en-CA",
|
|
Locale::EnDK => "en-DK",
|
|
Locale::EnGB => "en-GB",
|
|
Locale::EnHK => "en-HK",
|
|
Locale::EnIE => "en-IE",
|
|
Locale::EnIL => "en-IL",
|
|
Locale::EnIN => "en-IN",
|
|
Locale::EnNG => "en-NG",
|
|
Locale::EnNZ => "en-NZ",
|
|
Locale::EnPH => "en-PH",
|
|
Locale::EnSC => "en-SC",
|
|
Locale::EnSG => "en-SG",
|
|
Locale::EnZA => "en-ZA",
|
|
Locale::EnZM => "en-ZM",
|
|
Locale::EnZW => "en-ZW",
|
|
Locale::Eo => "eo",
|
|
Locale::EsAR => "es-AR",
|
|
Locale::EsBO => "es-BO",
|
|
Locale::EsCL => "es-CL",
|
|
Locale::EsCO => "es-CO",
|
|
Locale::EsCR => "es-CR",
|
|
Locale::EsCU => "es-CU",
|
|
Locale::EsDO => "es-DO",
|
|
Locale::EsEC => "es-EC",
|
|
Locale::EsES => "es-ES",
|
|
Locale::EsGT => "es-GT",
|
|
Locale::EsHN => "es-HN",
|
|
Locale::EsMX => "es-MX",
|
|
Locale::EsNI => "es-NI",
|
|
Locale::EsPA => "es-PA",
|
|
Locale::EsPE => "es-PE",
|
|
Locale::EsPR => "es-PR",
|
|
Locale::EsPY => "es-PY",
|
|
Locale::EsSV => "es-SV",
|
|
Locale::EsUS => "es-US",
|
|
Locale::EsUY => "es-UY",
|
|
Locale::EsVE => "es-VE",
|
|
Locale::EtEE => "et-EE",
|
|
Locale::EuES => "eu-ES",
|
|
Locale::ZhHans => "zh-Hans",
|
|
Locale::FaIR => "fa-IR",
|
|
Locale::FfSN => "ff-SN",
|
|
Locale::FiFI => "fi-FI",
|
|
Locale::FilPH => "fil-PH",
|
|
Locale::FoFO => "fo-FO",
|
|
Locale::FrBE => "fr-BE",
|
|
Locale::FrCA => "fr-CA",
|
|
Locale::FrCH => "fr-CH",
|
|
Locale::FrFR => "fr-FR",
|
|
Locale::FrLU => "fr-LU",
|
|
Locale::ZhHant => "zh-Hant",
|
|
Locale::FurIT => "fur-IT",
|
|
Locale::FyDE => "fy-DE",
|
|
Locale::FyNL => "fy-NL",
|
|
Locale::GaIE => "ga-IE",
|
|
Locale::ZhHantHK => "zh-Hant-HK",
|
|
Locale::GdGB => "gd-GB",
|
|
Locale::GezER => "gez-ER",
|
|
Locale::SrLatnBA => "sr-Latn-BA",
|
|
Locale::GezET => "gez-ET",
|
|
Locale::SrLatnME => "sr-Latn-ME",
|
|
Locale::GlES => "gl-ES",
|
|
Locale::AzLatnAZ => "az-Latn-AZ",
|
|
Locale::GuIN => "gu-IN",
|
|
Locale::GvGB => "gv-GB",
|
|
Locale::HaNG => "ha-NG",
|
|
Locale::HakTW => "hak-TW",
|
|
Locale::HeIL => "he-IL",
|
|
Locale::HiIN => "hi-IN",
|
|
Locale::HifFJ => "hif-FJ",
|
|
Locale::HneIN => "hne-IN",
|
|
Locale::HrHR => "hr-HR",
|
|
Locale::HsbDE => "hsb-DE",
|
|
Locale::HtHT => "ht-HT",
|
|
Locale::HuHU => "hu-HU",
|
|
Locale::HyAM => "hy-AM",
|
|
Locale::IaFR => "ia-FR",
|
|
Locale::IdID => "id-ID",
|
|
Locale::IgNG => "ig-NG",
|
|
Locale::IkCA => "ik-CA",
|
|
Locale::IsIS => "is-IS",
|
|
Locale::ItCH => "it-CH",
|
|
Locale::ItIT => "it-IT",
|
|
Locale::IuCA => "iu-CA",
|
|
Locale::JaJP => "ja-JP",
|
|
Locale::KaGE => "ka-GE",
|
|
Locale::KabDZ => "kab-DZ",
|
|
Locale::KkKZ => "kk-KZ",
|
|
Locale::KlGL => "kl-GL",
|
|
Locale::KmKH => "km-KH",
|
|
Locale::KnIN => "kn-IN",
|
|
Locale::KoKR => "ko-KR",
|
|
Locale::KokIN => "kok-IN",
|
|
Locale::KsIN => "ks-IN",
|
|
Locale::KsDevaIN => "ks-Deva-IN",
|
|
Locale::KuTR => "ku-TR",
|
|
Locale::KwGB => "kw-GB",
|
|
Locale::KyKG => "ky-KG",
|
|
Locale::LbLU => "lb-LU",
|
|
Locale::LgUG => "lg-UG",
|
|
Locale::LiBE => "li-BE",
|
|
Locale::LiNL => "li-NL",
|
|
Locale::LijIT => "lij-IT",
|
|
Locale::LnCD => "ln-CD",
|
|
Locale::LoLA => "lo-LA",
|
|
Locale::LtLT => "lt-LT",
|
|
Locale::LvLV => "lv-LV",
|
|
Locale::LzhTW => "lzh-TW",
|
|
Locale::MagIN => "mag-IN",
|
|
Locale::MaiIN => "mai-IN",
|
|
Locale::MaiNP => "mai-NP",
|
|
Locale::MfeMU => "mfe-MU",
|
|
Locale::MgMG => "mg-MG",
|
|
Locale::MhrRU => "mhr-RU",
|
|
Locale::MiNZ => "mi-NZ",
|
|
Locale::MiqNI => "miq-NI",
|
|
Locale::MjwIN => "mjw-IN",
|
|
Locale::MkMK => "mk-MK",
|
|
Locale::MlIN => "ml-IN",
|
|
Locale::MnMN => "mn-MN",
|
|
Locale::MniIN => "mni-IN",
|
|
Locale::MnwMM => "mnw-MM",
|
|
Locale::MrIN => "mr-IN",
|
|
Locale::MsMY => "ms-MY",
|
|
Locale::MtMT => "mt-MT",
|
|
Locale::MyMM => "my-MM",
|
|
Locale::NanTW => "nan-TW",
|
|
Locale::NanLatnTW => "nan-Latn-TW",
|
|
Locale::NbNO => "nb-NO",
|
|
Locale::NdsDE => "nds-DE",
|
|
Locale::NdsNL => "nds-NL",
|
|
Locale::NeNP => "ne-NP",
|
|
Locale::NhnMX => "nhn-MX",
|
|
Locale::NiuNU => "niu-NU",
|
|
Locale::NiuNZ => "niu-NZ",
|
|
Locale::NlAW => "nl-AW",
|
|
Locale::NlBE => "nl-BE",
|
|
Locale::NlNL => "nl-NL",
|
|
Locale::NnNO => "nn-NO",
|
|
Locale::NrZA => "nr-ZA",
|
|
Locale::NsoZA => "nso-ZA",
|
|
Locale::OcFR => "oc-FR",
|
|
Locale::OmET => "om-ET",
|
|
Locale::OmKE => "om-KE",
|
|
Locale::OrIN => "or-IN",
|
|
Locale::OsRU => "os-RU",
|
|
Locale::PaIN => "pa-IN",
|
|
Locale::PaPK => "pa-PK",
|
|
Locale::PapAW => "pap-AW",
|
|
Locale::PapCW => "pap-CW",
|
|
Locale::PlPL => "pl-PL",
|
|
Locale::PsAF => "ps-AF",
|
|
Locale::PtBR => "pt-BR",
|
|
Locale::PtPT => "pt-PT",
|
|
Locale::QuzPE => "quz-PE",
|
|
Locale::RajIN => "raj-IN",
|
|
Locale::RoRO => "ro-RO",
|
|
Locale::RuRU => "ru-RU",
|
|
Locale::RuUA => "ru-UA",
|
|
Locale::RwRW => "rw-RW",
|
|
Locale::SaIN => "sa-IN",
|
|
Locale::SahRU => "sah-RU",
|
|
Locale::SatIN => "sat-IN",
|
|
Locale::ScIT => "sc-IT",
|
|
Locale::SdIN => "sd-IN",
|
|
Locale::SdDevaIN => "sd-Deva-IN",
|
|
Locale::SeNO => "se-NO",
|
|
Locale::SgsLT => "sgs-LT",
|
|
Locale::ShnMM => "shn-MM",
|
|
Locale::ShsCA => "shs-CA",
|
|
Locale::SiLK => "si-LK",
|
|
Locale::SidET => "sid-ET",
|
|
Locale::SkSK => "sk-SK",
|
|
Locale::SlSI => "sl-SI",
|
|
Locale::SmWS => "sm-WS",
|
|
Locale::SoDJ => "so-DJ",
|
|
Locale::SoET => "so-ET",
|
|
Locale::SoKE => "so-KE",
|
|
Locale::SoSO => "so-SO",
|
|
Locale::SqAL => "sq-AL",
|
|
Locale::SqMK => "sq-MK",
|
|
Locale::SrME => "sr-ME",
|
|
Locale::SrRS => "sr-RS",
|
|
Locale::SrLatnRS => "sr-Latn-RS",
|
|
Locale::SsZA => "ss-ZA",
|
|
Locale::StZA => "st-ZA",
|
|
Locale::SvFI => "sv-FI",
|
|
Locale::SvSE => "sv-SE",
|
|
Locale::SwKE => "sw-KE",
|
|
Locale::SwTZ => "sw-TZ",
|
|
Locale::SzlPL => "szl-PL",
|
|
Locale::TaIN => "ta-IN",
|
|
Locale::TaLK => "ta-LK",
|
|
Locale::TcyIN => "tcy-IN",
|
|
Locale::TeIN => "te-IN",
|
|
Locale::TgTJ => "tg-TJ",
|
|
Locale::ThTH => "th-TH",
|
|
Locale::TheNP => "the-NP",
|
|
Locale::TiER => "ti-ER",
|
|
Locale::TiET => "ti-ET",
|
|
Locale::TigER => "tig-ER",
|
|
Locale::TkTM => "tk-TM",
|
|
Locale::TlPH => "tl-PH",
|
|
Locale::TnZA => "tn-ZA",
|
|
Locale::ToTO => "to-TO",
|
|
Locale::TpiPG => "tpi-PG",
|
|
Locale::TrCY => "tr-CY",
|
|
Locale::TrTR => "tr-TR",
|
|
Locale::TsZA => "ts-ZA",
|
|
Locale::TtRU => "tt-RU",
|
|
Locale::TtLatnRU => "tt-Latn-RU",
|
|
Locale::UgCN => "ug-CN",
|
|
Locale::UkUA => "uk-UA",
|
|
Locale::UnmUS => "unm-US",
|
|
Locale::UrIN => "ur-IN",
|
|
Locale::UrPK => "ur-PK",
|
|
Locale::UzUZ => "uz-UZ",
|
|
Locale::UzCyrlUZ => "uz-Cyrl-UZ",
|
|
Locale::VeZA => "ve-ZA",
|
|
Locale::ViVN => "vi-VN",
|
|
Locale::WaBE => "wa-BE",
|
|
Locale::UzLatnUZ => "uz-Latn-UZ",
|
|
Locale::WaeCH => "wae-CH",
|
|
Locale::WalET => "wal-ET",
|
|
Locale::WoSN => "wo-SN",
|
|
Locale::XhZA => "xh-ZA",
|
|
Locale::YiUS => "yi-US",
|
|
Locale::YoNG => "yo-NG",
|
|
Locale::YueHK => "yue-HK",
|
|
Locale::YuwPG => "yuw-PG",
|
|
Locale::ZhCN => "zh-CN",
|
|
Locale::ZhHK => "zh-HK",
|
|
Locale::ZhSG => "zh-SG",
|
|
Locale::ZhTW => "zh-TW",
|
|
Locale::ZuZA => "zu-ZA",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(Locale::EnUS),
|
|
1 => Some(Locale::AaDJ),
|
|
2 => Some(Locale::AaER),
|
|
3 => Some(Locale::SsyER),
|
|
4 => Some(Locale::AaET),
|
|
5 => Some(Locale::AfZA),
|
|
6 => Some(Locale::AgrPE),
|
|
7 => Some(Locale::AkGH),
|
|
8 => Some(Locale::AmET),
|
|
9 => Some(Locale::AnES),
|
|
10 => Some(Locale::AnpIN),
|
|
11 => Some(Locale::ArAE),
|
|
12 => Some(Locale::ArBH),
|
|
13 => Some(Locale::ArDZ),
|
|
14 => Some(Locale::ArEG),
|
|
15 => Some(Locale::ArIN),
|
|
16 => Some(Locale::ArIQ),
|
|
17 => Some(Locale::ArJO),
|
|
18 => Some(Locale::ArKW),
|
|
19 => Some(Locale::ArLB),
|
|
20 => Some(Locale::ArLY),
|
|
21 => Some(Locale::ArMA),
|
|
22 => Some(Locale::ArOM),
|
|
23 => Some(Locale::ArQA),
|
|
24 => Some(Locale::ArSA),
|
|
25 => Some(Locale::ArSD),
|
|
26 => Some(Locale::ArSS),
|
|
27 => Some(Locale::ArSY),
|
|
28 => Some(Locale::ArTN),
|
|
29 => Some(Locale::ArYE),
|
|
30 => Some(Locale::AsIN),
|
|
31 => Some(Locale::AstES),
|
|
32 => Some(Locale::AycPE),
|
|
33 => Some(Locale::AzAZ),
|
|
34 => Some(Locale::AzIR),
|
|
35 => Some(Locale::BeBY),
|
|
36 => Some(Locale::BeLatnBY),
|
|
37 => Some(Locale::BemZM),
|
|
38 => Some(Locale::BerDZ),
|
|
39 => Some(Locale::BerMA),
|
|
40 => Some(Locale::BgBG),
|
|
41 => Some(Locale::BhbIN),
|
|
42 => Some(Locale::BhoIN),
|
|
43 => Some(Locale::BhoNP),
|
|
44 => Some(Locale::BiVU),
|
|
45 => Some(Locale::BnBD),
|
|
46 => Some(Locale::BnIN),
|
|
47 => Some(Locale::BoCN),
|
|
48 => Some(Locale::BoIN),
|
|
49 => Some(Locale::BrFR),
|
|
50 => Some(Locale::Es419),
|
|
51 => Some(Locale::BrxIN),
|
|
52 => Some(Locale::BsBA),
|
|
53 => Some(Locale::BynER),
|
|
54 => Some(Locale::CaAD),
|
|
55 => Some(Locale::CaES),
|
|
56 => Some(Locale::En150),
|
|
57 => Some(Locale::CaESValencia),
|
|
58 => Some(Locale::CaFR),
|
|
59 => Some(Locale::CaIT),
|
|
60 => Some(Locale::CeRU),
|
|
61 => Some(Locale::ChrUS),
|
|
62 => Some(Locale::CmnTW),
|
|
63 => Some(Locale::CrhUA),
|
|
64 => Some(Locale::CsCZ),
|
|
65 => Some(Locale::CsbPL),
|
|
66 => Some(Locale::CvRU),
|
|
67 => Some(Locale::CyGB),
|
|
68 => Some(Locale::DaDK),
|
|
69 => Some(Locale::DeAT),
|
|
71 => Some(Locale::DeBE),
|
|
72 => Some(Locale::En001),
|
|
73 => Some(Locale::DeCH),
|
|
74 => Some(Locale::DeDE),
|
|
76 => Some(Locale::DeIT),
|
|
77 => Some(Locale::DeLI),
|
|
78 => Some(Locale::DeLU),
|
|
79 => Some(Locale::Ar001),
|
|
80 => Some(Locale::DoiIN),
|
|
81 => Some(Locale::DsbDE),
|
|
82 => Some(Locale::DvMV),
|
|
83 => Some(Locale::DzBT),
|
|
84 => Some(Locale::ElCY),
|
|
85 => Some(Locale::ElGR),
|
|
87 => Some(Locale::EnAG),
|
|
88 => Some(Locale::EnAU),
|
|
89 => Some(Locale::EnBW),
|
|
90 => Some(Locale::EnCA),
|
|
91 => Some(Locale::EnDK),
|
|
92 => Some(Locale::EnGB),
|
|
93 => Some(Locale::EnHK),
|
|
94 => Some(Locale::EnIE),
|
|
96 => Some(Locale::EnIL),
|
|
97 => Some(Locale::EnIN),
|
|
98 => Some(Locale::EnNG),
|
|
99 => Some(Locale::EnNZ),
|
|
100 => Some(Locale::EnPH),
|
|
101 => Some(Locale::EnSC),
|
|
102 => Some(Locale::EnSG),
|
|
104 => Some(Locale::EnZA),
|
|
105 => Some(Locale::EnZM),
|
|
106 => Some(Locale::EnZW),
|
|
107 => Some(Locale::Eo),
|
|
108 => Some(Locale::EsAR),
|
|
109 => Some(Locale::EsBO),
|
|
110 => Some(Locale::EsCL),
|
|
111 => Some(Locale::EsCO),
|
|
112 => Some(Locale::EsCR),
|
|
113 => Some(Locale::EsCU),
|
|
114 => Some(Locale::EsDO),
|
|
115 => Some(Locale::EsEC),
|
|
116 => Some(Locale::EsES),
|
|
118 => Some(Locale::EsGT),
|
|
119 => Some(Locale::EsHN),
|
|
120 => Some(Locale::EsMX),
|
|
121 => Some(Locale::EsNI),
|
|
122 => Some(Locale::EsPA),
|
|
123 => Some(Locale::EsPE),
|
|
124 => Some(Locale::EsPR),
|
|
125 => Some(Locale::EsPY),
|
|
126 => Some(Locale::EsSV),
|
|
127 => Some(Locale::EsUS),
|
|
128 => Some(Locale::EsUY),
|
|
129 => Some(Locale::EsVE),
|
|
130 => Some(Locale::EtEE),
|
|
131 => Some(Locale::EuES),
|
|
132 => Some(Locale::ZhHans),
|
|
133 => Some(Locale::FaIR),
|
|
134 => Some(Locale::FfSN),
|
|
135 => Some(Locale::FiFI),
|
|
137 => Some(Locale::FilPH),
|
|
138 => Some(Locale::FoFO),
|
|
139 => Some(Locale::FrBE),
|
|
141 => Some(Locale::FrCA),
|
|
142 => Some(Locale::FrCH),
|
|
143 => Some(Locale::FrFR),
|
|
145 => Some(Locale::FrLU),
|
|
146 => Some(Locale::ZhHant),
|
|
147 => Some(Locale::FurIT),
|
|
148 => Some(Locale::FyDE),
|
|
149 => Some(Locale::FyNL),
|
|
150 => Some(Locale::GaIE),
|
|
151 => Some(Locale::ZhHantHK),
|
|
152 => Some(Locale::GdGB),
|
|
153 => Some(Locale::GezER),
|
|
154 => Some(Locale::SrLatnBA),
|
|
155 => Some(Locale::GezET),
|
|
156 => Some(Locale::SrLatnME),
|
|
157 => Some(Locale::GlES),
|
|
158 => Some(Locale::AzLatnAZ),
|
|
159 => Some(Locale::GuIN),
|
|
160 => Some(Locale::GvGB),
|
|
161 => Some(Locale::HaNG),
|
|
162 => Some(Locale::HakTW),
|
|
163 => Some(Locale::HeIL),
|
|
164 => Some(Locale::HiIN),
|
|
165 => Some(Locale::HifFJ),
|
|
166 => Some(Locale::HneIN),
|
|
167 => Some(Locale::HrHR),
|
|
168 => Some(Locale::HsbDE),
|
|
169 => Some(Locale::HtHT),
|
|
170 => Some(Locale::HuHU),
|
|
171 => Some(Locale::HyAM),
|
|
172 => Some(Locale::IaFR),
|
|
173 => Some(Locale::IdID),
|
|
174 => Some(Locale::IgNG),
|
|
175 => Some(Locale::IkCA),
|
|
176 => Some(Locale::IsIS),
|
|
177 => Some(Locale::ItCH),
|
|
178 => Some(Locale::ItIT),
|
|
180 => Some(Locale::IuCA),
|
|
181 => Some(Locale::JaJP),
|
|
182 => Some(Locale::KaGE),
|
|
183 => Some(Locale::KabDZ),
|
|
184 => Some(Locale::KkKZ),
|
|
185 => Some(Locale::KlGL),
|
|
186 => Some(Locale::KmKH),
|
|
187 => Some(Locale::KnIN),
|
|
188 => Some(Locale::KoKR),
|
|
189 => Some(Locale::KokIN),
|
|
190 => Some(Locale::KsIN),
|
|
191 => Some(Locale::KsDevaIN),
|
|
192 => Some(Locale::KuTR),
|
|
193 => Some(Locale::KwGB),
|
|
194 => Some(Locale::KyKG),
|
|
195 => Some(Locale::LbLU),
|
|
196 => Some(Locale::LgUG),
|
|
197 => Some(Locale::LiBE),
|
|
198 => Some(Locale::LiNL),
|
|
199 => Some(Locale::LijIT),
|
|
200 => Some(Locale::LnCD),
|
|
201 => Some(Locale::LoLA),
|
|
202 => Some(Locale::LtLT),
|
|
203 => Some(Locale::LvLV),
|
|
204 => Some(Locale::LzhTW),
|
|
205 => Some(Locale::MagIN),
|
|
206 => Some(Locale::MaiIN),
|
|
207 => Some(Locale::MaiNP),
|
|
208 => Some(Locale::MfeMU),
|
|
209 => Some(Locale::MgMG),
|
|
210 => Some(Locale::MhrRU),
|
|
211 => Some(Locale::MiNZ),
|
|
212 => Some(Locale::MiqNI),
|
|
213 => Some(Locale::MjwIN),
|
|
214 => Some(Locale::MkMK),
|
|
215 => Some(Locale::MlIN),
|
|
216 => Some(Locale::MnMN),
|
|
217 => Some(Locale::MniIN),
|
|
218 => Some(Locale::MnwMM),
|
|
219 => Some(Locale::MrIN),
|
|
220 => Some(Locale::MsMY),
|
|
221 => Some(Locale::MtMT),
|
|
222 => Some(Locale::MyMM),
|
|
223 => Some(Locale::NanTW),
|
|
224 => Some(Locale::NanLatnTW),
|
|
225 => Some(Locale::NbNO),
|
|
226 => Some(Locale::NdsDE),
|
|
227 => Some(Locale::NdsNL),
|
|
228 => Some(Locale::NeNP),
|
|
229 => Some(Locale::NhnMX),
|
|
230 => Some(Locale::NiuNU),
|
|
231 => Some(Locale::NiuNZ),
|
|
232 => Some(Locale::NlAW),
|
|
233 => Some(Locale::NlBE),
|
|
235 => Some(Locale::NlNL),
|
|
237 => Some(Locale::NnNO),
|
|
238 => Some(Locale::NrZA),
|
|
239 => Some(Locale::NsoZA),
|
|
240 => Some(Locale::OcFR),
|
|
241 => Some(Locale::OmET),
|
|
242 => Some(Locale::OmKE),
|
|
243 => Some(Locale::OrIN),
|
|
244 => Some(Locale::OsRU),
|
|
245 => Some(Locale::PaIN),
|
|
246 => Some(Locale::PaPK),
|
|
247 => Some(Locale::PapAW),
|
|
248 => Some(Locale::PapCW),
|
|
249 => Some(Locale::PlPL),
|
|
250 => Some(Locale::PsAF),
|
|
251 => Some(Locale::PtBR),
|
|
252 => Some(Locale::PtPT),
|
|
254 => Some(Locale::QuzPE),
|
|
255 => Some(Locale::RajIN),
|
|
256 => Some(Locale::RoRO),
|
|
257 => Some(Locale::RuRU),
|
|
258 => Some(Locale::RuUA),
|
|
259 => Some(Locale::RwRW),
|
|
260 => Some(Locale::SaIN),
|
|
261 => Some(Locale::SahRU),
|
|
262 => Some(Locale::SatIN),
|
|
263 => Some(Locale::ScIT),
|
|
264 => Some(Locale::SdIN),
|
|
265 => Some(Locale::SdDevaIN),
|
|
266 => Some(Locale::SeNO),
|
|
267 => Some(Locale::SgsLT),
|
|
268 => Some(Locale::ShnMM),
|
|
269 => Some(Locale::ShsCA),
|
|
270 => Some(Locale::SiLK),
|
|
271 => Some(Locale::SidET),
|
|
272 => Some(Locale::SkSK),
|
|
273 => Some(Locale::SlSI),
|
|
274 => Some(Locale::SmWS),
|
|
275 => Some(Locale::SoDJ),
|
|
276 => Some(Locale::SoET),
|
|
277 => Some(Locale::SoKE),
|
|
278 => Some(Locale::SoSO),
|
|
279 => Some(Locale::SqAL),
|
|
280 => Some(Locale::SqMK),
|
|
281 => Some(Locale::SrME),
|
|
282 => Some(Locale::SrRS),
|
|
283 => Some(Locale::SrLatnRS),
|
|
284 => Some(Locale::SsZA),
|
|
285 => Some(Locale::StZA),
|
|
286 => Some(Locale::SvFI),
|
|
288 => Some(Locale::SvSE),
|
|
289 => Some(Locale::SwKE),
|
|
290 => Some(Locale::SwTZ),
|
|
291 => Some(Locale::SzlPL),
|
|
292 => Some(Locale::TaIN),
|
|
293 => Some(Locale::TaLK),
|
|
294 => Some(Locale::TcyIN),
|
|
295 => Some(Locale::TeIN),
|
|
296 => Some(Locale::TgTJ),
|
|
297 => Some(Locale::ThTH),
|
|
298 => Some(Locale::TheNP),
|
|
299 => Some(Locale::TiER),
|
|
300 => Some(Locale::TiET),
|
|
301 => Some(Locale::TigER),
|
|
302 => Some(Locale::TkTM),
|
|
303 => Some(Locale::TlPH),
|
|
304 => Some(Locale::TnZA),
|
|
305 => Some(Locale::ToTO),
|
|
306 => Some(Locale::TpiPG),
|
|
307 => Some(Locale::TrCY),
|
|
308 => Some(Locale::TrTR),
|
|
309 => Some(Locale::TsZA),
|
|
310 => Some(Locale::TtRU),
|
|
311 => Some(Locale::TtLatnRU),
|
|
312 => Some(Locale::UgCN),
|
|
313 => Some(Locale::UkUA),
|
|
314 => Some(Locale::UnmUS),
|
|
315 => Some(Locale::UrIN),
|
|
316 => Some(Locale::UrPK),
|
|
317 => Some(Locale::UzUZ),
|
|
318 => Some(Locale::UzCyrlUZ),
|
|
319 => Some(Locale::VeZA),
|
|
320 => Some(Locale::ViVN),
|
|
321 => Some(Locale::WaBE),
|
|
322 => Some(Locale::UzLatnUZ),
|
|
323 => Some(Locale::WaeCH),
|
|
324 => Some(Locale::WalET),
|
|
325 => Some(Locale::WoSN),
|
|
326 => Some(Locale::XhZA),
|
|
327 => Some(Locale::YiUS),
|
|
328 => Some(Locale::YoNG),
|
|
329 => Some(Locale::YueHK),
|
|
330 => Some(Locale::YuwPG),
|
|
331 => Some(Locale::ZhCN),
|
|
332 => Some(Locale::ZhHK),
|
|
333 => Some(Locale::ZhSG),
|
|
334 => Some(Locale::ZhTW),
|
|
335 => Some(Locale::ZuZA),
|
|
70 | 75 | 86 | 95 | 103 | 117 | 136 | 140 | 144 | 179 | 234 | 236 | 253 | 287 => {
|
|
Some(Locale::EnUS)
|
|
}
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 336;
|
|
}
|
|
|
|
impl serde::Serialize for Locale {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for Locale {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for LogRotateFrequency {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"daily" => LogRotateFrequency::Daily,
|
|
b"hourly" => LogRotateFrequency::Hourly,
|
|
b"minutely" => LogRotateFrequency::Minutely,
|
|
b"never" => LogRotateFrequency::Never,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
LogRotateFrequency::Daily => "daily",
|
|
LogRotateFrequency::Hourly => "hourly",
|
|
LogRotateFrequency::Minutely => "minutely",
|
|
LogRotateFrequency::Never => "never",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(LogRotateFrequency::Daily),
|
|
1 => Some(LogRotateFrequency::Hourly),
|
|
2 => Some(LogRotateFrequency::Minutely),
|
|
3 => Some(LogRotateFrequency::Never),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for LogRotateFrequency {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for LogRotateFrequency {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for LookupStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"PostgreSql" => LookupStoreType::PostgreSql,
|
|
b"MySql" => LookupStoreType::MySql,
|
|
b"Sqlite" => LookupStoreType::Sqlite,
|
|
b"Sharded" => LookupStoreType::Sharded,
|
|
b"Redis" => LookupStoreType::Redis,
|
|
b"RedisCluster" => LookupStoreType::RedisCluster,
|
|
b"RedisSentinel" => LookupStoreType::RedisSentinel,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
LookupStoreType::PostgreSql => "PostgreSql",
|
|
LookupStoreType::MySql => "MySql",
|
|
LookupStoreType::Sqlite => "Sqlite",
|
|
LookupStoreType::Sharded => "Sharded",
|
|
LookupStoreType::Redis => "Redis",
|
|
LookupStoreType::RedisCluster => "RedisCluster",
|
|
LookupStoreType::RedisSentinel => "RedisSentinel",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(LookupStoreType::PostgreSql),
|
|
1 => Some(LookupStoreType::MySql),
|
|
2 => Some(LookupStoreType::Sqlite),
|
|
3 => Some(LookupStoreType::Sharded),
|
|
4 => Some(LookupStoreType::Redis),
|
|
5 => Some(LookupStoreType::RedisCluster),
|
|
6 => Some(LookupStoreType::RedisSentinel),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for LookupStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for LookupStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MessageFlag {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"authenticated" => MessageFlag::Authenticated,
|
|
b"unauthenticated" => MessageFlag::Unauthenticated,
|
|
b"unauthenticatedDmarc" => MessageFlag::UnauthenticatedDmarc,
|
|
b"dsn" => MessageFlag::Dsn,
|
|
b"report" => MessageFlag::Report,
|
|
b"autogenerated" => MessageFlag::Autogenerated,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MessageFlag::Authenticated => "authenticated",
|
|
MessageFlag::Unauthenticated => "unauthenticated",
|
|
MessageFlag::UnauthenticatedDmarc => "unauthenticatedDmarc",
|
|
MessageFlag::Dsn => "dsn",
|
|
MessageFlag::Report => "report",
|
|
MessageFlag::Autogenerated => "autogenerated",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MessageFlag::Authenticated),
|
|
1 => Some(MessageFlag::Unauthenticated),
|
|
2 => Some(MessageFlag::UnauthenticatedDmarc),
|
|
3 => Some(MessageFlag::Dsn),
|
|
4 => Some(MessageFlag::Report),
|
|
5 => Some(MessageFlag::Autogenerated),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for MessageFlag {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MessageFlag {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MetricType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Counter" => MetricType::Counter,
|
|
b"Gauge" => MetricType::Gauge,
|
|
b"Histogram" => MetricType::Histogram,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MetricType::Counter => "Counter",
|
|
MetricType::Gauge => "Gauge",
|
|
MetricType::Histogram => "Histogram",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MetricType::Counter),
|
|
1 => Some(MetricType::Gauge),
|
|
2 => Some(MetricType::Histogram),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for MetricType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MetricType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MetricsOtelType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => MetricsOtelType::Disabled,
|
|
b"Http" => MetricsOtelType::Http,
|
|
b"Grpc" => MetricsOtelType::Grpc,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MetricsOtelType::Disabled => "Disabled",
|
|
MetricsOtelType::Http => "Http",
|
|
MetricsOtelType::Grpc => "Grpc",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MetricsOtelType::Disabled),
|
|
1 => Some(MetricsOtelType::Http),
|
|
2 => Some(MetricsOtelType::Grpc),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for MetricsOtelType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MetricsOtelType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MetricsPrometheusType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => MetricsPrometheusType::Disabled,
|
|
b"Enabled" => MetricsPrometheusType::Enabled,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MetricsPrometheusType::Disabled => "Disabled",
|
|
MetricsPrometheusType::Enabled => "Enabled",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MetricsPrometheusType::Disabled),
|
|
1 => Some(MetricsPrometheusType::Enabled),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for MetricsPrometheusType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MetricsPrometheusType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MetricsStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => MetricsStoreType::Disabled,
|
|
b"Default" => MetricsStoreType::Default,
|
|
b"FoundationDb" => MetricsStoreType::FoundationDb,
|
|
b"PostgreSql" => MetricsStoreType::PostgreSql,
|
|
b"MySql" => MetricsStoreType::MySql,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MetricsStoreType::Disabled => "Disabled",
|
|
MetricsStoreType::Default => "Default",
|
|
MetricsStoreType::FoundationDb => "FoundationDb",
|
|
MetricsStoreType::PostgreSql => "PostgreSql",
|
|
MetricsStoreType::MySql => "MySql",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MetricsStoreType::Disabled),
|
|
1 => Some(MetricsStoreType::Default),
|
|
2 => Some(MetricsStoreType::FoundationDb),
|
|
3 => Some(MetricsStoreType::PostgreSql),
|
|
4 => Some(MetricsStoreType::MySql),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for MetricsStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MetricsStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MilterVersion {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"v2" => MilterVersion::V2,
|
|
b"v6" => MilterVersion::V6,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MilterVersion::V2 => "v2",
|
|
MilterVersion::V6 => "v6",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MilterVersion::V2),
|
|
1 => Some(MilterVersion::V6),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for MilterVersion {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MilterVersion {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ModelSize {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"16" => ModelSize::V16,
|
|
b"17" => ModelSize::V17,
|
|
b"18" => ModelSize::V18,
|
|
b"19" => ModelSize::V19,
|
|
b"20" => ModelSize::V20,
|
|
b"21" => ModelSize::V21,
|
|
b"22" => ModelSize::V22,
|
|
b"23" => ModelSize::V23,
|
|
b"24" => ModelSize::V24,
|
|
b"25" => ModelSize::V25,
|
|
b"26" => ModelSize::V26,
|
|
b"27" => ModelSize::V27,
|
|
b"28" => ModelSize::V28,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ModelSize::V16 => "16",
|
|
ModelSize::V17 => "17",
|
|
ModelSize::V18 => "18",
|
|
ModelSize::V19 => "19",
|
|
ModelSize::V20 => "20",
|
|
ModelSize::V21 => "21",
|
|
ModelSize::V22 => "22",
|
|
ModelSize::V23 => "23",
|
|
ModelSize::V24 => "24",
|
|
ModelSize::V25 => "25",
|
|
ModelSize::V26 => "26",
|
|
ModelSize::V27 => "27",
|
|
ModelSize::V28 => "28",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ModelSize::V16),
|
|
1 => Some(ModelSize::V17),
|
|
2 => Some(ModelSize::V18),
|
|
3 => Some(ModelSize::V19),
|
|
4 => Some(ModelSize::V20),
|
|
5 => Some(ModelSize::V21),
|
|
6 => Some(ModelSize::V22),
|
|
7 => Some(ModelSize::V23),
|
|
8 => Some(ModelSize::V24),
|
|
9 => Some(ModelSize::V25),
|
|
10 => Some(ModelSize::V26),
|
|
11 => Some(ModelSize::V27),
|
|
12 => Some(ModelSize::V28),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 13;
|
|
}
|
|
|
|
impl serde::Serialize for ModelSize {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ModelSize {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaDeliveryExpirationType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Ttl" => MtaDeliveryExpirationType::Ttl,
|
|
b"Attempts" => MtaDeliveryExpirationType::Attempts,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaDeliveryExpirationType::Ttl => "Ttl",
|
|
MtaDeliveryExpirationType::Attempts => "Attempts",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaDeliveryExpirationType::Ttl),
|
|
1 => Some(MtaDeliveryExpirationType::Attempts),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for MtaDeliveryExpirationType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaDeliveryExpirationType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaDeliveryScheduleIntervalsOrDefaultType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Default" => MtaDeliveryScheduleIntervalsOrDefaultType::Default,
|
|
b"Custom" => MtaDeliveryScheduleIntervalsOrDefaultType::Custom,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaDeliveryScheduleIntervalsOrDefaultType::Default => "Default",
|
|
MtaDeliveryScheduleIntervalsOrDefaultType::Custom => "Custom",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaDeliveryScheduleIntervalsOrDefaultType::Default),
|
|
1 => Some(MtaDeliveryScheduleIntervalsOrDefaultType::Custom),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for MtaDeliveryScheduleIntervalsOrDefaultType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaDeliveryScheduleIntervalsOrDefaultType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaInboundThrottleKey {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"listener" => MtaInboundThrottleKey::Listener,
|
|
b"remoteIp" => MtaInboundThrottleKey::RemoteIp,
|
|
b"localIp" => MtaInboundThrottleKey::LocalIp,
|
|
b"authenticatedAs" => MtaInboundThrottleKey::AuthenticatedAs,
|
|
b"heloDomain" => MtaInboundThrottleKey::HeloDomain,
|
|
b"sender" => MtaInboundThrottleKey::Sender,
|
|
b"senderDomain" => MtaInboundThrottleKey::SenderDomain,
|
|
b"rcpt" => MtaInboundThrottleKey::Rcpt,
|
|
b"rcptDomain" => MtaInboundThrottleKey::RcptDomain,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaInboundThrottleKey::Listener => "listener",
|
|
MtaInboundThrottleKey::RemoteIp => "remoteIp",
|
|
MtaInboundThrottleKey::LocalIp => "localIp",
|
|
MtaInboundThrottleKey::AuthenticatedAs => "authenticatedAs",
|
|
MtaInboundThrottleKey::HeloDomain => "heloDomain",
|
|
MtaInboundThrottleKey::Sender => "sender",
|
|
MtaInboundThrottleKey::SenderDomain => "senderDomain",
|
|
MtaInboundThrottleKey::Rcpt => "rcpt",
|
|
MtaInboundThrottleKey::RcptDomain => "rcptDomain",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaInboundThrottleKey::Listener),
|
|
1 => Some(MtaInboundThrottleKey::RemoteIp),
|
|
2 => Some(MtaInboundThrottleKey::LocalIp),
|
|
3 => Some(MtaInboundThrottleKey::AuthenticatedAs),
|
|
4 => Some(MtaInboundThrottleKey::HeloDomain),
|
|
5 => Some(MtaInboundThrottleKey::Sender),
|
|
6 => Some(MtaInboundThrottleKey::SenderDomain),
|
|
7 => Some(MtaInboundThrottleKey::Rcpt),
|
|
8 => Some(MtaInboundThrottleKey::RcptDomain),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 9;
|
|
}
|
|
|
|
impl serde::Serialize for MtaInboundThrottleKey {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaInboundThrottleKey {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaIpStrategy {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"v4ThenV6" => MtaIpStrategy::V4ThenV6,
|
|
b"v6ThenV4" => MtaIpStrategy::V6ThenV4,
|
|
b"v4Only" => MtaIpStrategy::V4Only,
|
|
b"v6Only" => MtaIpStrategy::V6Only,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaIpStrategy::V4ThenV6 => "v4ThenV6",
|
|
MtaIpStrategy::V6ThenV4 => "v6ThenV4",
|
|
MtaIpStrategy::V4Only => "v4Only",
|
|
MtaIpStrategy::V6Only => "v6Only",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaIpStrategy::V4ThenV6),
|
|
1 => Some(MtaIpStrategy::V6ThenV4),
|
|
2 => Some(MtaIpStrategy::V4Only),
|
|
3 => Some(MtaIpStrategy::V6Only),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for MtaIpStrategy {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaIpStrategy {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaOutboundThrottleKey {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"mx" => MtaOutboundThrottleKey::Mx,
|
|
b"remoteIp" => MtaOutboundThrottleKey::RemoteIp,
|
|
b"localIp" => MtaOutboundThrottleKey::LocalIp,
|
|
b"sender" => MtaOutboundThrottleKey::Sender,
|
|
b"senderDomain" => MtaOutboundThrottleKey::SenderDomain,
|
|
b"rcptDomain" => MtaOutboundThrottleKey::RcptDomain,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaOutboundThrottleKey::Mx => "mx",
|
|
MtaOutboundThrottleKey::RemoteIp => "remoteIp",
|
|
MtaOutboundThrottleKey::LocalIp => "localIp",
|
|
MtaOutboundThrottleKey::Sender => "sender",
|
|
MtaOutboundThrottleKey::SenderDomain => "senderDomain",
|
|
MtaOutboundThrottleKey::RcptDomain => "rcptDomain",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaOutboundThrottleKey::Mx),
|
|
1 => Some(MtaOutboundThrottleKey::RemoteIp),
|
|
2 => Some(MtaOutboundThrottleKey::LocalIp),
|
|
3 => Some(MtaOutboundThrottleKey::Sender),
|
|
4 => Some(MtaOutboundThrottleKey::SenderDomain),
|
|
5 => Some(MtaOutboundThrottleKey::RcptDomain),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for MtaOutboundThrottleKey {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaOutboundThrottleKey {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaProtocol {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"smtp" => MtaProtocol::Smtp,
|
|
b"lmtp" => MtaProtocol::Lmtp,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaProtocol::Smtp => "smtp",
|
|
MtaProtocol::Lmtp => "lmtp",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaProtocol::Smtp),
|
|
1 => Some(MtaProtocol::Lmtp),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for MtaProtocol {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaProtocol {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaQueueQuotaKey {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"sender" => MtaQueueQuotaKey::Sender,
|
|
b"senderDomain" => MtaQueueQuotaKey::SenderDomain,
|
|
b"rcpt" => MtaQueueQuotaKey::Rcpt,
|
|
b"rcptDomain" => MtaQueueQuotaKey::RcptDomain,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaQueueQuotaKey::Sender => "sender",
|
|
MtaQueueQuotaKey::SenderDomain => "senderDomain",
|
|
MtaQueueQuotaKey::Rcpt => "rcpt",
|
|
MtaQueueQuotaKey::RcptDomain => "rcptDomain",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaQueueQuotaKey::Sender),
|
|
1 => Some(MtaQueueQuotaKey::SenderDomain),
|
|
2 => Some(MtaQueueQuotaKey::Rcpt),
|
|
3 => Some(MtaQueueQuotaKey::RcptDomain),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for MtaQueueQuotaKey {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaQueueQuotaKey {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaRequiredOrOptional {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"optional" => MtaRequiredOrOptional::Optional,
|
|
b"require" => MtaRequiredOrOptional::Require,
|
|
b"disable" => MtaRequiredOrOptional::Disable,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaRequiredOrOptional::Optional => "optional",
|
|
MtaRequiredOrOptional::Require => "require",
|
|
MtaRequiredOrOptional::Disable => "disable",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaRequiredOrOptional::Optional),
|
|
1 => Some(MtaRequiredOrOptional::Require),
|
|
2 => Some(MtaRequiredOrOptional::Disable),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for MtaRequiredOrOptional {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaRequiredOrOptional {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaRouteType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Mx" => MtaRouteType::Mx,
|
|
b"Relay" => MtaRouteType::Relay,
|
|
b"Local" => MtaRouteType::Local,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaRouteType::Mx => "Mx",
|
|
MtaRouteType::Relay => "Relay",
|
|
MtaRouteType::Local => "Local",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaRouteType::Mx),
|
|
1 => Some(MtaRouteType::Relay),
|
|
2 => Some(MtaRouteType::Local),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for MtaRouteType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaRouteType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for MtaStage {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"connect" => MtaStage::Connect,
|
|
b"ehlo" => MtaStage::Ehlo,
|
|
b"auth" => MtaStage::Auth,
|
|
b"mail" => MtaStage::Mail,
|
|
b"rcpt" => MtaStage::Rcpt,
|
|
b"data" => MtaStage::Data,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
MtaStage::Connect => "connect",
|
|
MtaStage::Ehlo => "ehlo",
|
|
MtaStage::Auth => "auth",
|
|
MtaStage::Mail => "mail",
|
|
MtaStage::Rcpt => "rcpt",
|
|
MtaStage::Data => "data",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(MtaStage::Connect),
|
|
1 => Some(MtaStage::Ehlo),
|
|
2 => Some(MtaStage::Auth),
|
|
3 => Some(MtaStage::Mail),
|
|
4 => Some(MtaStage::Rcpt),
|
|
5 => Some(MtaStage::Data),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for MtaStage {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for MtaStage {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for NetworkListenerProtocol {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"smtp" => NetworkListenerProtocol::Smtp,
|
|
b"lmtp" => NetworkListenerProtocol::Lmtp,
|
|
b"http" => NetworkListenerProtocol::Http,
|
|
b"imap" => NetworkListenerProtocol::Imap,
|
|
b"pop3" => NetworkListenerProtocol::Pop3,
|
|
b"manageSieve" => NetworkListenerProtocol::ManageSieve,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
NetworkListenerProtocol::Smtp => "smtp",
|
|
NetworkListenerProtocol::Lmtp => "lmtp",
|
|
NetworkListenerProtocol::Http => "http",
|
|
NetworkListenerProtocol::Imap => "imap",
|
|
NetworkListenerProtocol::Pop3 => "pop3",
|
|
NetworkListenerProtocol::ManageSieve => "manageSieve",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(NetworkListenerProtocol::Smtp),
|
|
1 => Some(NetworkListenerProtocol::Lmtp),
|
|
2 => Some(NetworkListenerProtocol::Http),
|
|
3 => Some(NetworkListenerProtocol::Imap),
|
|
4 => Some(NetworkListenerProtocol::Pop3),
|
|
5 => Some(NetworkListenerProtocol::ManageSieve),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for NetworkListenerProtocol {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for NetworkListenerProtocol {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for OvhEndpoint {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"ovh-eu" => OvhEndpoint::OvhEu,
|
|
b"ovh-ca" => OvhEndpoint::OvhCa,
|
|
b"kimsufi-eu" => OvhEndpoint::KimsufiEu,
|
|
b"kimsufi-ca" => OvhEndpoint::KimsufiCa,
|
|
b"soyoustart-eu" => OvhEndpoint::SoyoustartEu,
|
|
b"soyoustart-ca" => OvhEndpoint::SoyoustartCa,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
OvhEndpoint::OvhEu => "ovh-eu",
|
|
OvhEndpoint::OvhCa => "ovh-ca",
|
|
OvhEndpoint::KimsufiEu => "kimsufi-eu",
|
|
OvhEndpoint::KimsufiCa => "kimsufi-ca",
|
|
OvhEndpoint::SoyoustartEu => "soyoustart-eu",
|
|
OvhEndpoint::SoyoustartCa => "soyoustart-ca",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(OvhEndpoint::OvhEu),
|
|
1 => Some(OvhEndpoint::OvhCa),
|
|
2 => Some(OvhEndpoint::KimsufiEu),
|
|
3 => Some(OvhEndpoint::KimsufiCa),
|
|
4 => Some(OvhEndpoint::SoyoustartEu),
|
|
5 => Some(OvhEndpoint::SoyoustartCa),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for OvhEndpoint {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for OvhEndpoint {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for PasswordHashAlgorithm {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"argon2id" => PasswordHashAlgorithm::Argon2id,
|
|
b"bcrypt" => PasswordHashAlgorithm::Bcrypt,
|
|
b"scrypt" => PasswordHashAlgorithm::Scrypt,
|
|
b"pbkdf2" => PasswordHashAlgorithm::Pbkdf2,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
PasswordHashAlgorithm::Argon2id => "argon2id",
|
|
PasswordHashAlgorithm::Bcrypt => "bcrypt",
|
|
PasswordHashAlgorithm::Scrypt => "scrypt",
|
|
PasswordHashAlgorithm::Pbkdf2 => "pbkdf2",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(PasswordHashAlgorithm::Argon2id),
|
|
1 => Some(PasswordHashAlgorithm::Bcrypt),
|
|
2 => Some(PasswordHashAlgorithm::Scrypt),
|
|
3 => Some(PasswordHashAlgorithm::Pbkdf2),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for PasswordHashAlgorithm {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for PasswordHashAlgorithm {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for PasswordStrength {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"zero" => PasswordStrength::Zero,
|
|
b"one" => PasswordStrength::One,
|
|
b"two" => PasswordStrength::Two,
|
|
b"three" => PasswordStrength::Three,
|
|
b"four" => PasswordStrength::Four,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
PasswordStrength::Zero => "zero",
|
|
PasswordStrength::One => "one",
|
|
PasswordStrength::Two => "two",
|
|
PasswordStrength::Three => "three",
|
|
PasswordStrength::Four => "four",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(PasswordStrength::Zero),
|
|
1 => Some(PasswordStrength::One),
|
|
2 => Some(PasswordStrength::Two),
|
|
3 => Some(PasswordStrength::Three),
|
|
4 => Some(PasswordStrength::Four),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for PasswordStrength {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for PasswordStrength {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for Permission {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::map! {
|
|
value.as_bytes(),
|
|
Permission,
|
|
b"authenticate" => Permission::Authenticate,
|
|
b"authenticateWithAlias" => Permission::AuthenticateWithAlias,
|
|
b"interactAi" => Permission::InteractAi,
|
|
b"impersonate" => Permission::Impersonate,
|
|
b"unlimitedRequests" => Permission::UnlimitedRequests,
|
|
b"unlimitedUploads" => Permission::UnlimitedUploads,
|
|
b"fetchAnyBlob" => Permission::FetchAnyBlob,
|
|
b"emailSend" => Permission::EmailSend,
|
|
b"emailReceive" => Permission::EmailReceive,
|
|
b"calendarAlarmsSend" => Permission::CalendarAlarmsSend,
|
|
b"calendarSchedulingSend" => Permission::CalendarSchedulingSend,
|
|
b"calendarSchedulingReceive" => Permission::CalendarSchedulingReceive,
|
|
b"jmapPushSubscriptionGet" => Permission::JmapPushSubscriptionGet,
|
|
b"jmapPushSubscriptionCreate" => Permission::JmapPushSubscriptionCreate,
|
|
b"jmapPushSubscriptionUpdate" => Permission::JmapPushSubscriptionUpdate,
|
|
b"jmapPushSubscriptionDestroy" => Permission::JmapPushSubscriptionDestroy,
|
|
b"jmapMailboxGet" => Permission::JmapMailboxGet,
|
|
b"jmapMailboxChanges" => Permission::JmapMailboxChanges,
|
|
b"jmapMailboxQuery" => Permission::JmapMailboxQuery,
|
|
b"jmapMailboxQueryChanges" => Permission::JmapMailboxQueryChanges,
|
|
b"jmapMailboxCreate" => Permission::JmapMailboxCreate,
|
|
b"jmapMailboxUpdate" => Permission::JmapMailboxUpdate,
|
|
b"jmapMailboxDestroy" => Permission::JmapMailboxDestroy,
|
|
b"jmapThreadGet" => Permission::JmapThreadGet,
|
|
b"jmapThreadChanges" => Permission::JmapThreadChanges,
|
|
b"jmapEmailGet" => Permission::JmapEmailGet,
|
|
b"jmapEmailChanges" => Permission::JmapEmailChanges,
|
|
b"jmapEmailQuery" => Permission::JmapEmailQuery,
|
|
b"jmapEmailQueryChanges" => Permission::JmapEmailQueryChanges,
|
|
b"jmapEmailCreate" => Permission::JmapEmailCreate,
|
|
b"jmapEmailUpdate" => Permission::JmapEmailUpdate,
|
|
b"jmapEmailDestroy" => Permission::JmapEmailDestroy,
|
|
b"jmapEmailCopy" => Permission::JmapEmailCopy,
|
|
b"jmapEmailImport" => Permission::JmapEmailImport,
|
|
b"jmapEmailParse" => Permission::JmapEmailParse,
|
|
b"jmapSearchSnippetGet" => Permission::JmapSearchSnippetGet,
|
|
b"jmapIdentityGet" => Permission::JmapIdentityGet,
|
|
b"jmapIdentityChanges" => Permission::JmapIdentityChanges,
|
|
b"jmapIdentityCreate" => Permission::JmapIdentityCreate,
|
|
b"jmapIdentityUpdate" => Permission::JmapIdentityUpdate,
|
|
b"jmapIdentityDestroy" => Permission::JmapIdentityDestroy,
|
|
b"jmapEmailSubmissionGet" => Permission::JmapEmailSubmissionGet,
|
|
b"jmapEmailSubmissionChanges" => Permission::JmapEmailSubmissionChanges,
|
|
b"jmapEmailSubmissionQuery" => Permission::JmapEmailSubmissionQuery,
|
|
b"jmapEmailSubmissionQueryChanges" => Permission::JmapEmailSubmissionQueryChanges,
|
|
b"jmapEmailSubmissionCreate" => Permission::JmapEmailSubmissionCreate,
|
|
b"jmapEmailSubmissionUpdate" => Permission::JmapEmailSubmissionUpdate,
|
|
b"jmapEmailSubmissionDestroy" => Permission::JmapEmailSubmissionDestroy,
|
|
b"jmapVacationResponseGet" => Permission::JmapVacationResponseGet,
|
|
b"jmapVacationResponseCreate" => Permission::JmapVacationResponseCreate,
|
|
b"jmapVacationResponseUpdate" => Permission::JmapVacationResponseUpdate,
|
|
b"jmapVacationResponseDestroy" => Permission::JmapVacationResponseDestroy,
|
|
b"jmapSieveScriptGet" => Permission::JmapSieveScriptGet,
|
|
b"jmapSieveScriptQuery" => Permission::JmapSieveScriptQuery,
|
|
b"jmapSieveScriptValidate" => Permission::JmapSieveScriptValidate,
|
|
b"jmapSieveScriptCreate" => Permission::JmapSieveScriptCreate,
|
|
b"jmapSieveScriptUpdate" => Permission::JmapSieveScriptUpdate,
|
|
b"jmapSieveScriptDestroy" => Permission::JmapSieveScriptDestroy,
|
|
b"jmapPrincipalGet" => Permission::JmapPrincipalGet,
|
|
b"jmapPrincipalQuery" => Permission::JmapPrincipalQuery,
|
|
b"jmapPrincipalChanges" => Permission::JmapPrincipalChanges,
|
|
b"jmapPrincipalQueryChanges" => Permission::JmapPrincipalQueryChanges,
|
|
b"jmapPrincipalGetAvailability" => Permission::JmapPrincipalGetAvailability,
|
|
b"jmapPrincipalCreate" => Permission::JmapPrincipalCreate,
|
|
b"jmapPrincipalUpdate" => Permission::JmapPrincipalUpdate,
|
|
b"jmapPrincipalDestroy" => Permission::JmapPrincipalDestroy,
|
|
b"jmapQuotaGet" => Permission::JmapQuotaGet,
|
|
b"jmapQuotaChanges" => Permission::JmapQuotaChanges,
|
|
b"jmapQuotaQuery" => Permission::JmapQuotaQuery,
|
|
b"jmapQuotaQueryChanges" => Permission::JmapQuotaQueryChanges,
|
|
b"jmapBlobGet" => Permission::JmapBlobGet,
|
|
b"jmapBlobCopy" => Permission::JmapBlobCopy,
|
|
b"jmapBlobLookup" => Permission::JmapBlobLookup,
|
|
b"jmapBlobUpload" => Permission::JmapBlobUpload,
|
|
b"jmapAddressBookGet" => Permission::JmapAddressBookGet,
|
|
b"jmapAddressBookChanges" => Permission::JmapAddressBookChanges,
|
|
b"jmapAddressBookCreate" => Permission::JmapAddressBookCreate,
|
|
b"jmapAddressBookUpdate" => Permission::JmapAddressBookUpdate,
|
|
b"jmapAddressBookDestroy" => Permission::JmapAddressBookDestroy,
|
|
b"jmapContactCardGet" => Permission::JmapContactCardGet,
|
|
b"jmapContactCardChanges" => Permission::JmapContactCardChanges,
|
|
b"jmapContactCardQuery" => Permission::JmapContactCardQuery,
|
|
b"jmapContactCardQueryChanges" => Permission::JmapContactCardQueryChanges,
|
|
b"jmapContactCardCreate" => Permission::JmapContactCardCreate,
|
|
b"jmapContactCardUpdate" => Permission::JmapContactCardUpdate,
|
|
b"jmapContactCardDestroy" => Permission::JmapContactCardDestroy,
|
|
b"jmapContactCardCopy" => Permission::JmapContactCardCopy,
|
|
b"jmapContactCardParse" => Permission::JmapContactCardParse,
|
|
b"jmapFileNodeGet" => Permission::JmapFileNodeGet,
|
|
b"jmapFileNodeChanges" => Permission::JmapFileNodeChanges,
|
|
b"jmapFileNodeQuery" => Permission::JmapFileNodeQuery,
|
|
b"jmapFileNodeQueryChanges" => Permission::JmapFileNodeQueryChanges,
|
|
b"jmapFileNodeCreate" => Permission::JmapFileNodeCreate,
|
|
b"jmapFileNodeUpdate" => Permission::JmapFileNodeUpdate,
|
|
b"jmapFileNodeDestroy" => Permission::JmapFileNodeDestroy,
|
|
b"jmapFileNodeCopy" => Permission::JmapFileNodeCopy,
|
|
b"jmapShareNotificationGet" => Permission::JmapShareNotificationGet,
|
|
b"jmapShareNotificationChanges" => Permission::JmapShareNotificationChanges,
|
|
b"jmapShareNotificationQuery" => Permission::JmapShareNotificationQuery,
|
|
b"jmapShareNotificationQueryChanges" => Permission::JmapShareNotificationQueryChanges,
|
|
b"jmapShareNotificationCreate" => Permission::JmapShareNotificationCreate,
|
|
b"jmapShareNotificationUpdate" => Permission::JmapShareNotificationUpdate,
|
|
b"jmapShareNotificationDestroy" => Permission::JmapShareNotificationDestroy,
|
|
b"jmapCalendarGet" => Permission::JmapCalendarGet,
|
|
b"jmapCalendarChanges" => Permission::JmapCalendarChanges,
|
|
b"jmapCalendarCreate" => Permission::JmapCalendarCreate,
|
|
b"jmapCalendarUpdate" => Permission::JmapCalendarUpdate,
|
|
b"jmapCalendarDestroy" => Permission::JmapCalendarDestroy,
|
|
b"jmapCalendarEventGet" => Permission::JmapCalendarEventGet,
|
|
b"jmapCalendarEventChanges" => Permission::JmapCalendarEventChanges,
|
|
b"jmapCalendarEventQuery" => Permission::JmapCalendarEventQuery,
|
|
b"jmapCalendarEventQueryChanges" => Permission::JmapCalendarEventQueryChanges,
|
|
b"jmapCalendarEventCreate" => Permission::JmapCalendarEventCreate,
|
|
b"jmapCalendarEventUpdate" => Permission::JmapCalendarEventUpdate,
|
|
b"jmapCalendarEventDestroy" => Permission::JmapCalendarEventDestroy,
|
|
b"jmapCalendarEventCopy" => Permission::JmapCalendarEventCopy,
|
|
b"jmapCalendarEventParse" => Permission::JmapCalendarEventParse,
|
|
b"jmapCalendarEventNotificationGet" => Permission::JmapCalendarEventNotificationGet,
|
|
b"jmapCalendarEventNotificationChanges" => Permission::JmapCalendarEventNotificationChanges,
|
|
b"jmapCalendarEventNotificationQuery" => Permission::JmapCalendarEventNotificationQuery,
|
|
b"jmapCalendarEventNotificationQueryChanges" => Permission::JmapCalendarEventNotificationQueryChanges,
|
|
b"jmapCalendarEventNotificationCreate" => Permission::JmapCalendarEventNotificationCreate,
|
|
b"jmapCalendarEventNotificationUpdate" => Permission::JmapCalendarEventNotificationUpdate,
|
|
b"jmapCalendarEventNotificationDestroy" => Permission::JmapCalendarEventNotificationDestroy,
|
|
b"jmapParticipantIdentityGet" => Permission::JmapParticipantIdentityGet,
|
|
b"jmapParticipantIdentityChanges" => Permission::JmapParticipantIdentityChanges,
|
|
b"jmapParticipantIdentityCreate" => Permission::JmapParticipantIdentityCreate,
|
|
b"jmapParticipantIdentityUpdate" => Permission::JmapParticipantIdentityUpdate,
|
|
b"jmapParticipantIdentityDestroy" => Permission::JmapParticipantIdentityDestroy,
|
|
b"jmapCoreEcho" => Permission::JmapCoreEcho,
|
|
b"imapAuthenticate" => Permission::ImapAuthenticate,
|
|
b"imapAclGet" => Permission::ImapAclGet,
|
|
b"imapAclSet" => Permission::ImapAclSet,
|
|
b"imapMyRights" => Permission::ImapMyRights,
|
|
b"imapListRights" => Permission::ImapListRights,
|
|
b"imapAppend" => Permission::ImapAppend,
|
|
b"imapCapability" => Permission::ImapCapability,
|
|
b"imapId" => Permission::ImapId,
|
|
b"imapCopy" => Permission::ImapCopy,
|
|
b"imapMove" => Permission::ImapMove,
|
|
b"imapCreate" => Permission::ImapCreate,
|
|
b"imapDelete" => Permission::ImapDelete,
|
|
b"imapEnable" => Permission::ImapEnable,
|
|
b"imapExpunge" => Permission::ImapExpunge,
|
|
b"imapFetch" => Permission::ImapFetch,
|
|
b"imapIdle" => Permission::ImapIdle,
|
|
b"imapList" => Permission::ImapList,
|
|
b"imapLsub" => Permission::ImapLsub,
|
|
b"imapNamespace" => Permission::ImapNamespace,
|
|
b"imapRename" => Permission::ImapRename,
|
|
b"imapSearch" => Permission::ImapSearch,
|
|
b"imapSort" => Permission::ImapSort,
|
|
b"imapSelect" => Permission::ImapSelect,
|
|
b"imapExamine" => Permission::ImapExamine,
|
|
b"imapStatus" => Permission::ImapStatus,
|
|
b"imapStore" => Permission::ImapStore,
|
|
b"imapSubscribe" => Permission::ImapSubscribe,
|
|
b"imapThread" => Permission::ImapThread,
|
|
b"pop3Authenticate" => Permission::Pop3Authenticate,
|
|
b"pop3List" => Permission::Pop3List,
|
|
b"pop3Uidl" => Permission::Pop3Uidl,
|
|
b"pop3Stat" => Permission::Pop3Stat,
|
|
b"pop3Retr" => Permission::Pop3Retr,
|
|
b"pop3Dele" => Permission::Pop3Dele,
|
|
b"sieveAuthenticate" => Permission::SieveAuthenticate,
|
|
b"sieveListScripts" => Permission::SieveListScripts,
|
|
b"sieveSetActive" => Permission::SieveSetActive,
|
|
b"sieveGetScript" => Permission::SieveGetScript,
|
|
b"sievePutScript" => Permission::SievePutScript,
|
|
b"sieveDeleteScript" => Permission::SieveDeleteScript,
|
|
b"sieveRenameScript" => Permission::SieveRenameScript,
|
|
b"sieveCheckScript" => Permission::SieveCheckScript,
|
|
b"sieveHaveSpace" => Permission::SieveHaveSpace,
|
|
b"davSyncCollection" => Permission::DavSyncCollection,
|
|
b"davExpandProperty" => Permission::DavExpandProperty,
|
|
b"davPrincipalAcl" => Permission::DavPrincipalAcl,
|
|
b"davPrincipalList" => Permission::DavPrincipalList,
|
|
b"davPrincipalMatch" => Permission::DavPrincipalMatch,
|
|
b"davPrincipalSearch" => Permission::DavPrincipalSearch,
|
|
b"davPrincipalSearchPropSet" => Permission::DavPrincipalSearchPropSet,
|
|
b"davFilePropFind" => Permission::DavFilePropFind,
|
|
b"davFilePropPatch" => Permission::DavFilePropPatch,
|
|
b"davFileGet" => Permission::DavFileGet,
|
|
b"davFileMkCol" => Permission::DavFileMkCol,
|
|
b"davFileDelete" => Permission::DavFileDelete,
|
|
b"davFilePut" => Permission::DavFilePut,
|
|
b"davFileCopy" => Permission::DavFileCopy,
|
|
b"davFileMove" => Permission::DavFileMove,
|
|
b"davFileLock" => Permission::DavFileLock,
|
|
b"davFileAcl" => Permission::DavFileAcl,
|
|
b"davCardPropFind" => Permission::DavCardPropFind,
|
|
b"davCardPropPatch" => Permission::DavCardPropPatch,
|
|
b"davCardGet" => Permission::DavCardGet,
|
|
b"davCardMkCol" => Permission::DavCardMkCol,
|
|
b"davCardDelete" => Permission::DavCardDelete,
|
|
b"davCardPut" => Permission::DavCardPut,
|
|
b"davCardCopy" => Permission::DavCardCopy,
|
|
b"davCardMove" => Permission::DavCardMove,
|
|
b"davCardLock" => Permission::DavCardLock,
|
|
b"davCardAcl" => Permission::DavCardAcl,
|
|
b"davCardQuery" => Permission::DavCardQuery,
|
|
b"davCardMultiGet" => Permission::DavCardMultiGet,
|
|
b"davCalPropFind" => Permission::DavCalPropFind,
|
|
b"davCalPropPatch" => Permission::DavCalPropPatch,
|
|
b"davCalGet" => Permission::DavCalGet,
|
|
b"davCalMkCol" => Permission::DavCalMkCol,
|
|
b"davCalDelete" => Permission::DavCalDelete,
|
|
b"davCalPut" => Permission::DavCalPut,
|
|
b"davCalCopy" => Permission::DavCalCopy,
|
|
b"davCalMove" => Permission::DavCalMove,
|
|
b"davCalLock" => Permission::DavCalLock,
|
|
b"davCalAcl" => Permission::DavCalAcl,
|
|
b"davCalQuery" => Permission::DavCalQuery,
|
|
b"davCalMultiGet" => Permission::DavCalMultiGet,
|
|
b"davCalFreeBusyQuery" => Permission::DavCalFreeBusyQuery,
|
|
b"oAuthClientRegistration" => Permission::OAuthClientRegistration,
|
|
b"oAuthClientOverride" => Permission::OAuthClientOverride,
|
|
b"liveTracing" => Permission::LiveTracing,
|
|
b"liveMetrics" => Permission::LiveMetrics,
|
|
b"liveDeliveryTest" => Permission::LiveDeliveryTest,
|
|
b"scimAccess" => Permission::ScimAccess,
|
|
b"sysAccountGet" => Permission::SysAccountGet,
|
|
b"sysAccountCreate" => Permission::SysAccountCreate,
|
|
b"sysAccountUpdate" => Permission::SysAccountUpdate,
|
|
b"sysAccountDestroy" => Permission::SysAccountDestroy,
|
|
b"sysAccountQuery" => Permission::SysAccountQuery,
|
|
b"sysAccountPasswordGet" => Permission::SysAccountPasswordGet,
|
|
b"sysAccountPasswordUpdate" => Permission::SysAccountPasswordUpdate,
|
|
b"sysAccountSettingsGet" => Permission::SysAccountSettingsGet,
|
|
b"sysAccountSettingsUpdate" => Permission::SysAccountSettingsUpdate,
|
|
b"sysAcmeProviderGet" => Permission::SysAcmeProviderGet,
|
|
b"sysAcmeProviderCreate" => Permission::SysAcmeProviderCreate,
|
|
b"sysAcmeProviderUpdate" => Permission::SysAcmeProviderUpdate,
|
|
b"sysAcmeProviderDestroy" => Permission::SysAcmeProviderDestroy,
|
|
b"sysAcmeProviderQuery" => Permission::SysAcmeProviderQuery,
|
|
b"actionReloadSettings" => Permission::ActionReloadSettings,
|
|
b"actionReloadTlsCertificates" => Permission::ActionReloadTlsCertificates,
|
|
b"actionReloadLookupStores" => Permission::ActionReloadLookupStores,
|
|
b"actionReloadBlockedIps" => Permission::ActionReloadBlockedIps,
|
|
b"actionUpdateApps" => Permission::ActionUpdateApps,
|
|
b"actionTroubleshootDmarc" => Permission::ActionTroubleshootDmarc,
|
|
b"actionClassifySpam" => Permission::ActionClassifySpam,
|
|
b"actionInvalidateCaches" => Permission::ActionInvalidateCaches,
|
|
b"actionInvalidateNegativeCaches" => Permission::ActionInvalidateNegativeCaches,
|
|
b"actionPauseMtaQueue" => Permission::ActionPauseMtaQueue,
|
|
b"actionResumeMtaQueue" => Permission::ActionResumeMtaQueue,
|
|
b"sysActionGet" => Permission::SysActionGet,
|
|
b"sysActionCreate" => Permission::SysActionCreate,
|
|
b"sysActionUpdate" => Permission::SysActionUpdate,
|
|
b"sysActionDestroy" => Permission::SysActionDestroy,
|
|
b"sysActionQuery" => Permission::SysActionQuery,
|
|
b"sysAddressBookGet" => Permission::SysAddressBookGet,
|
|
b"sysAddressBookUpdate" => Permission::SysAddressBookUpdate,
|
|
b"sysAiModelGet" => Permission::SysAiModelGet,
|
|
b"sysAiModelCreate" => Permission::SysAiModelCreate,
|
|
b"sysAiModelUpdate" => Permission::SysAiModelUpdate,
|
|
b"sysAiModelDestroy" => Permission::SysAiModelDestroy,
|
|
b"sysAiModelQuery" => Permission::SysAiModelQuery,
|
|
b"sysAlertGet" => Permission::SysAlertGet,
|
|
b"sysAlertCreate" => Permission::SysAlertCreate,
|
|
b"sysAlertUpdate" => Permission::SysAlertUpdate,
|
|
b"sysAlertDestroy" => Permission::SysAlertDestroy,
|
|
b"sysAlertQuery" => Permission::SysAlertQuery,
|
|
b"sysAllowedIpGet" => Permission::SysAllowedIpGet,
|
|
b"sysAllowedIpCreate" => Permission::SysAllowedIpCreate,
|
|
b"sysAllowedIpUpdate" => Permission::SysAllowedIpUpdate,
|
|
b"sysAllowedIpDestroy" => Permission::SysAllowedIpDestroy,
|
|
b"sysAllowedIpQuery" => Permission::SysAllowedIpQuery,
|
|
b"sysApiKeyGet" => Permission::SysApiKeyGet,
|
|
b"sysApiKeyCreate" => Permission::SysApiKeyCreate,
|
|
b"sysApiKeyUpdate" => Permission::SysApiKeyUpdate,
|
|
b"sysApiKeyDestroy" => Permission::SysApiKeyDestroy,
|
|
b"sysApiKeyQuery" => Permission::SysApiKeyQuery,
|
|
b"sysAppPasswordGet" => Permission::SysAppPasswordGet,
|
|
b"sysAppPasswordCreate" => Permission::SysAppPasswordCreate,
|
|
b"sysAppPasswordUpdate" => Permission::SysAppPasswordUpdate,
|
|
b"sysAppPasswordDestroy" => Permission::SysAppPasswordDestroy,
|
|
b"sysAppPasswordQuery" => Permission::SysAppPasswordQuery,
|
|
b"sysApplicationGet" => Permission::SysApplicationGet,
|
|
b"sysApplicationCreate" => Permission::SysApplicationCreate,
|
|
b"sysApplicationUpdate" => Permission::SysApplicationUpdate,
|
|
b"sysApplicationDestroy" => Permission::SysApplicationDestroy,
|
|
b"sysApplicationQuery" => Permission::SysApplicationQuery,
|
|
b"sysArchivedItemGet" => Permission::SysArchivedItemGet,
|
|
b"sysArchivedItemCreate" => Permission::SysArchivedItemCreate,
|
|
b"sysArchivedItemUpdate" => Permission::SysArchivedItemUpdate,
|
|
b"sysArchivedItemDestroy" => Permission::SysArchivedItemDestroy,
|
|
b"sysArchivedItemQuery" => Permission::SysArchivedItemQuery,
|
|
b"sysArfExternalReportGet" => Permission::SysArfExternalReportGet,
|
|
b"sysArfExternalReportCreate" => Permission::SysArfExternalReportCreate,
|
|
b"sysArfExternalReportUpdate" => Permission::SysArfExternalReportUpdate,
|
|
b"sysArfExternalReportDestroy" => Permission::SysArfExternalReportDestroy,
|
|
b"sysArfExternalReportQuery" => Permission::SysArfExternalReportQuery,
|
|
b"sysAsnGet" => Permission::SysAsnGet,
|
|
b"sysAsnUpdate" => Permission::SysAsnUpdate,
|
|
b"sysAuthenticationGet" => Permission::SysAuthenticationGet,
|
|
b"sysAuthenticationUpdate" => Permission::SysAuthenticationUpdate,
|
|
b"sysBlobStoreGet" => Permission::SysBlobStoreGet,
|
|
b"sysBlobStoreUpdate" => Permission::SysBlobStoreUpdate,
|
|
b"sysBlockedIpGet" => Permission::SysBlockedIpGet,
|
|
b"sysBlockedIpCreate" => Permission::SysBlockedIpCreate,
|
|
b"sysBlockedIpUpdate" => Permission::SysBlockedIpUpdate,
|
|
b"sysBlockedIpDestroy" => Permission::SysBlockedIpDestroy,
|
|
b"sysBlockedIpQuery" => Permission::SysBlockedIpQuery,
|
|
b"sysBootstrapGet" => Permission::SysBootstrapGet,
|
|
b"sysBootstrapUpdate" => Permission::SysBootstrapUpdate,
|
|
b"sysCacheGet" => Permission::SysCacheGet,
|
|
b"sysCacheUpdate" => Permission::SysCacheUpdate,
|
|
b"sysCalendarGet" => Permission::SysCalendarGet,
|
|
b"sysCalendarUpdate" => Permission::SysCalendarUpdate,
|
|
b"sysCalendarAlarmGet" => Permission::SysCalendarAlarmGet,
|
|
b"sysCalendarAlarmUpdate" => Permission::SysCalendarAlarmUpdate,
|
|
b"sysCalendarSchedulingGet" => Permission::SysCalendarSchedulingGet,
|
|
b"sysCalendarSchedulingUpdate" => Permission::SysCalendarSchedulingUpdate,
|
|
b"sysCertificateGet" => Permission::SysCertificateGet,
|
|
b"sysCertificateCreate" => Permission::SysCertificateCreate,
|
|
b"sysCertificateUpdate" => Permission::SysCertificateUpdate,
|
|
b"sysCertificateDestroy" => Permission::SysCertificateDestroy,
|
|
b"sysCertificateQuery" => Permission::SysCertificateQuery,
|
|
b"sysClusterNodeGet" => Permission::SysClusterNodeGet,
|
|
b"sysClusterNodeCreate" => Permission::SysClusterNodeCreate,
|
|
b"sysClusterNodeUpdate" => Permission::SysClusterNodeUpdate,
|
|
b"sysClusterNodeDestroy" => Permission::SysClusterNodeDestroy,
|
|
b"sysClusterNodeQuery" => Permission::SysClusterNodeQuery,
|
|
b"sysClusterRoleGet" => Permission::SysClusterRoleGet,
|
|
b"sysClusterRoleCreate" => Permission::SysClusterRoleCreate,
|
|
b"sysClusterRoleUpdate" => Permission::SysClusterRoleUpdate,
|
|
b"sysClusterRoleDestroy" => Permission::SysClusterRoleDestroy,
|
|
b"sysClusterRoleQuery" => Permission::SysClusterRoleQuery,
|
|
b"sysCoordinatorGet" => Permission::SysCoordinatorGet,
|
|
b"sysCoordinatorUpdate" => Permission::SysCoordinatorUpdate,
|
|
b"sysDataRetentionGet" => Permission::SysDataRetentionGet,
|
|
b"sysDataRetentionUpdate" => Permission::SysDataRetentionUpdate,
|
|
b"sysDataStoreGet" => Permission::SysDataStoreGet,
|
|
b"sysDataStoreUpdate" => Permission::SysDataStoreUpdate,
|
|
b"sysDirectoryGet" => Permission::SysDirectoryGet,
|
|
b"sysDirectoryCreate" => Permission::SysDirectoryCreate,
|
|
b"sysDirectoryUpdate" => Permission::SysDirectoryUpdate,
|
|
b"sysDirectoryDestroy" => Permission::SysDirectoryDestroy,
|
|
b"sysDirectoryQuery" => Permission::SysDirectoryQuery,
|
|
b"sysDkimReportSettingsGet" => Permission::SysDkimReportSettingsGet,
|
|
b"sysDkimReportSettingsUpdate" => Permission::SysDkimReportSettingsUpdate,
|
|
b"sysDkimSignatureGet" => Permission::SysDkimSignatureGet,
|
|
b"sysDkimSignatureCreate" => Permission::SysDkimSignatureCreate,
|
|
b"sysDkimSignatureUpdate" => Permission::SysDkimSignatureUpdate,
|
|
b"sysDkimSignatureDestroy" => Permission::SysDkimSignatureDestroy,
|
|
b"sysDkimSignatureQuery" => Permission::SysDkimSignatureQuery,
|
|
b"sysDmarcExternalReportGet" => Permission::SysDmarcExternalReportGet,
|
|
b"sysDmarcExternalReportCreate" => Permission::SysDmarcExternalReportCreate,
|
|
b"sysDmarcExternalReportUpdate" => Permission::SysDmarcExternalReportUpdate,
|
|
b"sysDmarcExternalReportDestroy" => Permission::SysDmarcExternalReportDestroy,
|
|
b"sysDmarcExternalReportQuery" => Permission::SysDmarcExternalReportQuery,
|
|
b"sysDmarcInternalReportGet" => Permission::SysDmarcInternalReportGet,
|
|
b"sysDmarcInternalReportCreate" => Permission::SysDmarcInternalReportCreate,
|
|
b"sysDmarcInternalReportUpdate" => Permission::SysDmarcInternalReportUpdate,
|
|
b"sysDmarcInternalReportDestroy" => Permission::SysDmarcInternalReportDestroy,
|
|
b"sysDmarcInternalReportQuery" => Permission::SysDmarcInternalReportQuery,
|
|
b"sysDmarcReportSettingsGet" => Permission::SysDmarcReportSettingsGet,
|
|
b"sysDmarcReportSettingsUpdate" => Permission::SysDmarcReportSettingsUpdate,
|
|
b"sysDnsResolverGet" => Permission::SysDnsResolverGet,
|
|
b"sysDnsResolverUpdate" => Permission::SysDnsResolverUpdate,
|
|
b"sysDnsServerGet" => Permission::SysDnsServerGet,
|
|
b"sysDnsServerCreate" => Permission::SysDnsServerCreate,
|
|
b"sysDnsServerUpdate" => Permission::SysDnsServerUpdate,
|
|
b"sysDnsServerDestroy" => Permission::SysDnsServerDestroy,
|
|
b"sysDnsServerQuery" => Permission::SysDnsServerQuery,
|
|
b"sysDomainGet" => Permission::SysDomainGet,
|
|
b"sysDomainCreate" => Permission::SysDomainCreate,
|
|
b"sysDomainUpdate" => Permission::SysDomainUpdate,
|
|
b"sysDomainDestroy" => Permission::SysDomainDestroy,
|
|
b"sysDomainQuery" => Permission::SysDomainQuery,
|
|
b"sysDsnReportSettingsGet" => Permission::SysDsnReportSettingsGet,
|
|
b"sysDsnReportSettingsUpdate" => Permission::SysDsnReportSettingsUpdate,
|
|
b"sysEmailGet" => Permission::SysEmailGet,
|
|
b"sysEmailUpdate" => Permission::SysEmailUpdate,
|
|
b"sysEnterpriseGet" => Permission::SysEnterpriseGet,
|
|
b"sysEnterpriseUpdate" => Permission::SysEnterpriseUpdate,
|
|
b"sysEventTracingLevelGet" => Permission::SysEventTracingLevelGet,
|
|
b"sysEventTracingLevelCreate" => Permission::SysEventTracingLevelCreate,
|
|
b"sysEventTracingLevelUpdate" => Permission::SysEventTracingLevelUpdate,
|
|
b"sysEventTracingLevelDestroy" => Permission::SysEventTracingLevelDestroy,
|
|
b"sysEventTracingLevelQuery" => Permission::SysEventTracingLevelQuery,
|
|
b"sysFileStorageGet" => Permission::SysFileStorageGet,
|
|
b"sysFileStorageUpdate" => Permission::SysFileStorageUpdate,
|
|
b"sysHttpGet" => Permission::SysHttpGet,
|
|
b"sysHttpUpdate" => Permission::SysHttpUpdate,
|
|
b"sysHttpFormGet" => Permission::SysHttpFormGet,
|
|
b"sysHttpFormUpdate" => Permission::SysHttpFormUpdate,
|
|
b"sysHttpLookupGet" => Permission::SysHttpLookupGet,
|
|
b"sysHttpLookupCreate" => Permission::SysHttpLookupCreate,
|
|
b"sysHttpLookupUpdate" => Permission::SysHttpLookupUpdate,
|
|
b"sysHttpLookupDestroy" => Permission::SysHttpLookupDestroy,
|
|
b"sysHttpLookupQuery" => Permission::SysHttpLookupQuery,
|
|
b"sysImapGet" => Permission::SysImapGet,
|
|
b"sysImapUpdate" => Permission::SysImapUpdate,
|
|
b"sysInMemoryStoreGet" => Permission::SysInMemoryStoreGet,
|
|
b"sysInMemoryStoreUpdate" => Permission::SysInMemoryStoreUpdate,
|
|
b"sysJmapGet" => Permission::SysJmapGet,
|
|
b"sysJmapUpdate" => Permission::SysJmapUpdate,
|
|
b"sysLogGet" => Permission::SysLogGet,
|
|
b"sysLogCreate" => Permission::SysLogCreate,
|
|
b"sysLogUpdate" => Permission::SysLogUpdate,
|
|
b"sysLogDestroy" => Permission::SysLogDestroy,
|
|
b"sysLogQuery" => Permission::SysLogQuery,
|
|
b"sysMailingListGet" => Permission::SysMailingListGet,
|
|
b"sysMailingListCreate" => Permission::SysMailingListCreate,
|
|
b"sysMailingListUpdate" => Permission::SysMailingListUpdate,
|
|
b"sysMailingListDestroy" => Permission::SysMailingListDestroy,
|
|
b"sysMailingListQuery" => Permission::SysMailingListQuery,
|
|
b"sysMaskedEmailGet" => Permission::SysMaskedEmailGet,
|
|
b"sysMaskedEmailCreate" => Permission::SysMaskedEmailCreate,
|
|
b"sysMaskedEmailUpdate" => Permission::SysMaskedEmailUpdate,
|
|
b"sysMaskedEmailDestroy" => Permission::SysMaskedEmailDestroy,
|
|
b"sysMaskedEmailQuery" => Permission::SysMaskedEmailQuery,
|
|
b"sysMemoryLookupKeyGet" => Permission::SysMemoryLookupKeyGet,
|
|
b"sysMemoryLookupKeyCreate" => Permission::SysMemoryLookupKeyCreate,
|
|
b"sysMemoryLookupKeyUpdate" => Permission::SysMemoryLookupKeyUpdate,
|
|
b"sysMemoryLookupKeyDestroy" => Permission::SysMemoryLookupKeyDestroy,
|
|
b"sysMemoryLookupKeyQuery" => Permission::SysMemoryLookupKeyQuery,
|
|
b"sysMemoryLookupKeyValueGet" => Permission::SysMemoryLookupKeyValueGet,
|
|
b"sysMemoryLookupKeyValueCreate" => Permission::SysMemoryLookupKeyValueCreate,
|
|
b"sysMemoryLookupKeyValueUpdate" => Permission::SysMemoryLookupKeyValueUpdate,
|
|
b"sysMemoryLookupKeyValueDestroy" => Permission::SysMemoryLookupKeyValueDestroy,
|
|
b"sysMemoryLookupKeyValueQuery" => Permission::SysMemoryLookupKeyValueQuery,
|
|
b"sysMetricGet" => Permission::SysMetricGet,
|
|
b"sysMetricCreate" => Permission::SysMetricCreate,
|
|
b"sysMetricUpdate" => Permission::SysMetricUpdate,
|
|
b"sysMetricDestroy" => Permission::SysMetricDestroy,
|
|
b"sysMetricQuery" => Permission::SysMetricQuery,
|
|
b"sysMetricsGet" => Permission::SysMetricsGet,
|
|
b"sysMetricsUpdate" => Permission::SysMetricsUpdate,
|
|
b"sysMetricsStoreGet" => Permission::SysMetricsStoreGet,
|
|
b"sysMetricsStoreUpdate" => Permission::SysMetricsStoreUpdate,
|
|
b"sysMtaConnectionStrategyGet" => Permission::SysMtaConnectionStrategyGet,
|
|
b"sysMtaConnectionStrategyCreate" => Permission::SysMtaConnectionStrategyCreate,
|
|
b"sysMtaConnectionStrategyUpdate" => Permission::SysMtaConnectionStrategyUpdate,
|
|
b"sysMtaConnectionStrategyDestroy" => Permission::SysMtaConnectionStrategyDestroy,
|
|
b"sysMtaConnectionStrategyQuery" => Permission::SysMtaConnectionStrategyQuery,
|
|
b"sysMtaDeliveryScheduleGet" => Permission::SysMtaDeliveryScheduleGet,
|
|
b"sysMtaDeliveryScheduleCreate" => Permission::SysMtaDeliveryScheduleCreate,
|
|
b"sysMtaDeliveryScheduleUpdate" => Permission::SysMtaDeliveryScheduleUpdate,
|
|
b"sysMtaDeliveryScheduleDestroy" => Permission::SysMtaDeliveryScheduleDestroy,
|
|
b"sysMtaDeliveryScheduleQuery" => Permission::SysMtaDeliveryScheduleQuery,
|
|
b"sysMtaExtensionsGet" => Permission::SysMtaExtensionsGet,
|
|
b"sysMtaExtensionsUpdate" => Permission::SysMtaExtensionsUpdate,
|
|
b"sysMtaHookGet" => Permission::SysMtaHookGet,
|
|
b"sysMtaHookCreate" => Permission::SysMtaHookCreate,
|
|
b"sysMtaHookUpdate" => Permission::SysMtaHookUpdate,
|
|
b"sysMtaHookDestroy" => Permission::SysMtaHookDestroy,
|
|
b"sysMtaHookQuery" => Permission::SysMtaHookQuery,
|
|
b"sysMtaInboundSessionGet" => Permission::SysMtaInboundSessionGet,
|
|
b"sysMtaInboundSessionUpdate" => Permission::SysMtaInboundSessionUpdate,
|
|
b"sysMtaInboundThrottleGet" => Permission::SysMtaInboundThrottleGet,
|
|
b"sysMtaInboundThrottleCreate" => Permission::SysMtaInboundThrottleCreate,
|
|
b"sysMtaInboundThrottleUpdate" => Permission::SysMtaInboundThrottleUpdate,
|
|
b"sysMtaInboundThrottleDestroy" => Permission::SysMtaInboundThrottleDestroy,
|
|
b"sysMtaInboundThrottleQuery" => Permission::SysMtaInboundThrottleQuery,
|
|
b"sysMtaMilterGet" => Permission::SysMtaMilterGet,
|
|
b"sysMtaMilterCreate" => Permission::SysMtaMilterCreate,
|
|
b"sysMtaMilterUpdate" => Permission::SysMtaMilterUpdate,
|
|
b"sysMtaMilterDestroy" => Permission::SysMtaMilterDestroy,
|
|
b"sysMtaMilterQuery" => Permission::SysMtaMilterQuery,
|
|
b"sysMtaOutboundStrategyGet" => Permission::SysMtaOutboundStrategyGet,
|
|
b"sysMtaOutboundStrategyUpdate" => Permission::SysMtaOutboundStrategyUpdate,
|
|
b"sysMtaOutboundThrottleGet" => Permission::SysMtaOutboundThrottleGet,
|
|
b"sysMtaOutboundThrottleCreate" => Permission::SysMtaOutboundThrottleCreate,
|
|
b"sysMtaOutboundThrottleUpdate" => Permission::SysMtaOutboundThrottleUpdate,
|
|
b"sysMtaOutboundThrottleDestroy" => Permission::SysMtaOutboundThrottleDestroy,
|
|
b"sysMtaOutboundThrottleQuery" => Permission::SysMtaOutboundThrottleQuery,
|
|
b"sysMtaQueueQuotaGet" => Permission::SysMtaQueueQuotaGet,
|
|
b"sysMtaQueueQuotaCreate" => Permission::SysMtaQueueQuotaCreate,
|
|
b"sysMtaQueueQuotaUpdate" => Permission::SysMtaQueueQuotaUpdate,
|
|
b"sysMtaQueueQuotaDestroy" => Permission::SysMtaQueueQuotaDestroy,
|
|
b"sysMtaQueueQuotaQuery" => Permission::SysMtaQueueQuotaQuery,
|
|
b"sysMtaRouteGet" => Permission::SysMtaRouteGet,
|
|
b"sysMtaRouteCreate" => Permission::SysMtaRouteCreate,
|
|
b"sysMtaRouteUpdate" => Permission::SysMtaRouteUpdate,
|
|
b"sysMtaRouteDestroy" => Permission::SysMtaRouteDestroy,
|
|
b"sysMtaRouteQuery" => Permission::SysMtaRouteQuery,
|
|
b"sysMtaStageAuthGet" => Permission::SysMtaStageAuthGet,
|
|
b"sysMtaStageAuthUpdate" => Permission::SysMtaStageAuthUpdate,
|
|
b"sysMtaStageConnectGet" => Permission::SysMtaStageConnectGet,
|
|
b"sysMtaStageConnectUpdate" => Permission::SysMtaStageConnectUpdate,
|
|
b"sysMtaStageDataGet" => Permission::SysMtaStageDataGet,
|
|
b"sysMtaStageDataUpdate" => Permission::SysMtaStageDataUpdate,
|
|
b"sysMtaStageEhloGet" => Permission::SysMtaStageEhloGet,
|
|
b"sysMtaStageEhloUpdate" => Permission::SysMtaStageEhloUpdate,
|
|
b"sysMtaStageMailGet" => Permission::SysMtaStageMailGet,
|
|
b"sysMtaStageMailUpdate" => Permission::SysMtaStageMailUpdate,
|
|
b"sysMtaStageRcptGet" => Permission::SysMtaStageRcptGet,
|
|
b"sysMtaStageRcptUpdate" => Permission::SysMtaStageRcptUpdate,
|
|
b"sysMtaStsGet" => Permission::SysMtaStsGet,
|
|
b"sysMtaStsUpdate" => Permission::SysMtaStsUpdate,
|
|
b"sysMtaTlsStrategyGet" => Permission::SysMtaTlsStrategyGet,
|
|
b"sysMtaTlsStrategyCreate" => Permission::SysMtaTlsStrategyCreate,
|
|
b"sysMtaTlsStrategyUpdate" => Permission::SysMtaTlsStrategyUpdate,
|
|
b"sysMtaTlsStrategyDestroy" => Permission::SysMtaTlsStrategyDestroy,
|
|
b"sysMtaTlsStrategyQuery" => Permission::SysMtaTlsStrategyQuery,
|
|
b"sysMtaVirtualQueueGet" => Permission::SysMtaVirtualQueueGet,
|
|
b"sysMtaVirtualQueueCreate" => Permission::SysMtaVirtualQueueCreate,
|
|
b"sysMtaVirtualQueueUpdate" => Permission::SysMtaVirtualQueueUpdate,
|
|
b"sysMtaVirtualQueueDestroy" => Permission::SysMtaVirtualQueueDestroy,
|
|
b"sysMtaVirtualQueueQuery" => Permission::SysMtaVirtualQueueQuery,
|
|
b"sysNetworkListenerGet" => Permission::SysNetworkListenerGet,
|
|
b"sysNetworkListenerCreate" => Permission::SysNetworkListenerCreate,
|
|
b"sysNetworkListenerUpdate" => Permission::SysNetworkListenerUpdate,
|
|
b"sysNetworkListenerDestroy" => Permission::SysNetworkListenerDestroy,
|
|
b"sysNetworkListenerQuery" => Permission::SysNetworkListenerQuery,
|
|
b"sysOAuthClientGet" => Permission::SysOAuthClientGet,
|
|
b"sysOAuthClientCreate" => Permission::SysOAuthClientCreate,
|
|
b"sysOAuthClientUpdate" => Permission::SysOAuthClientUpdate,
|
|
b"sysOAuthClientDestroy" => Permission::SysOAuthClientDestroy,
|
|
b"sysOAuthClientQuery" => Permission::SysOAuthClientQuery,
|
|
b"sysOidcProviderGet" => Permission::SysOidcProviderGet,
|
|
b"sysOidcProviderUpdate" => Permission::SysOidcProviderUpdate,
|
|
b"sysPublicKeyGet" => Permission::SysPublicKeyGet,
|
|
b"sysPublicKeyCreate" => Permission::SysPublicKeyCreate,
|
|
b"sysPublicKeyUpdate" => Permission::SysPublicKeyUpdate,
|
|
b"sysPublicKeyDestroy" => Permission::SysPublicKeyDestroy,
|
|
b"sysPublicKeyQuery" => Permission::SysPublicKeyQuery,
|
|
b"sysQueuedMessageGet" => Permission::SysQueuedMessageGet,
|
|
b"sysQueuedMessageCreate" => Permission::SysQueuedMessageCreate,
|
|
b"sysQueuedMessageUpdate" => Permission::SysQueuedMessageUpdate,
|
|
b"sysQueuedMessageDestroy" => Permission::SysQueuedMessageDestroy,
|
|
b"sysQueuedMessageQuery" => Permission::SysQueuedMessageQuery,
|
|
b"sysReportSettingsGet" => Permission::SysReportSettingsGet,
|
|
b"sysReportSettingsUpdate" => Permission::SysReportSettingsUpdate,
|
|
b"sysRoleGet" => Permission::SysRoleGet,
|
|
b"sysRoleCreate" => Permission::SysRoleCreate,
|
|
b"sysRoleUpdate" => Permission::SysRoleUpdate,
|
|
b"sysRoleDestroy" => Permission::SysRoleDestroy,
|
|
b"sysRoleQuery" => Permission::SysRoleQuery,
|
|
b"sysSearchGet" => Permission::SysSearchGet,
|
|
b"sysSearchUpdate" => Permission::SysSearchUpdate,
|
|
b"sysSearchStoreGet" => Permission::SysSearchStoreGet,
|
|
b"sysSearchStoreUpdate" => Permission::SysSearchStoreUpdate,
|
|
b"sysSecurityGet" => Permission::SysSecurityGet,
|
|
b"sysSecurityUpdate" => Permission::SysSecurityUpdate,
|
|
b"sysSenderAuthGet" => Permission::SysSenderAuthGet,
|
|
b"sysSenderAuthUpdate" => Permission::SysSenderAuthUpdate,
|
|
b"sysSharingGet" => Permission::SysSharingGet,
|
|
b"sysSharingUpdate" => Permission::SysSharingUpdate,
|
|
b"sysSieveSystemInterpreterGet" => Permission::SysSieveSystemInterpreterGet,
|
|
b"sysSieveSystemInterpreterUpdate" => Permission::SysSieveSystemInterpreterUpdate,
|
|
b"sysSieveSystemScriptGet" => Permission::SysSieveSystemScriptGet,
|
|
b"sysSieveSystemScriptCreate" => Permission::SysSieveSystemScriptCreate,
|
|
b"sysSieveSystemScriptUpdate" => Permission::SysSieveSystemScriptUpdate,
|
|
b"sysSieveSystemScriptDestroy" => Permission::SysSieveSystemScriptDestroy,
|
|
b"sysSieveSystemScriptQuery" => Permission::SysSieveSystemScriptQuery,
|
|
b"sysSieveUserInterpreterGet" => Permission::SysSieveUserInterpreterGet,
|
|
b"sysSieveUserInterpreterUpdate" => Permission::SysSieveUserInterpreterUpdate,
|
|
b"sysSieveUserScriptGet" => Permission::SysSieveUserScriptGet,
|
|
b"sysSieveUserScriptCreate" => Permission::SysSieveUserScriptCreate,
|
|
b"sysSieveUserScriptUpdate" => Permission::SysSieveUserScriptUpdate,
|
|
b"sysSieveUserScriptDestroy" => Permission::SysSieveUserScriptDestroy,
|
|
b"sysSieveUserScriptQuery" => Permission::SysSieveUserScriptQuery,
|
|
b"sysSpamClassifierGet" => Permission::SysSpamClassifierGet,
|
|
b"sysSpamClassifierUpdate" => Permission::SysSpamClassifierUpdate,
|
|
b"sysSpamDnsblServerGet" => Permission::SysSpamDnsblServerGet,
|
|
b"sysSpamDnsblServerCreate" => Permission::SysSpamDnsblServerCreate,
|
|
b"sysSpamDnsblServerUpdate" => Permission::SysSpamDnsblServerUpdate,
|
|
b"sysSpamDnsblServerDestroy" => Permission::SysSpamDnsblServerDestroy,
|
|
b"sysSpamDnsblServerQuery" => Permission::SysSpamDnsblServerQuery,
|
|
b"sysSpamDnsblSettingsGet" => Permission::SysSpamDnsblSettingsGet,
|
|
b"sysSpamDnsblSettingsUpdate" => Permission::SysSpamDnsblSettingsUpdate,
|
|
b"sysSpamFileExtensionGet" => Permission::SysSpamFileExtensionGet,
|
|
b"sysSpamFileExtensionCreate" => Permission::SysSpamFileExtensionCreate,
|
|
b"sysSpamFileExtensionUpdate" => Permission::SysSpamFileExtensionUpdate,
|
|
b"sysSpamFileExtensionDestroy" => Permission::SysSpamFileExtensionDestroy,
|
|
b"sysSpamFileExtensionQuery" => Permission::SysSpamFileExtensionQuery,
|
|
b"sysSpamLlmGet" => Permission::SysSpamLlmGet,
|
|
b"sysSpamLlmUpdate" => Permission::SysSpamLlmUpdate,
|
|
b"sysSpamPyzorGet" => Permission::SysSpamPyzorGet,
|
|
b"sysSpamPyzorUpdate" => Permission::SysSpamPyzorUpdate,
|
|
b"sysSpamRuleGet" => Permission::SysSpamRuleGet,
|
|
b"sysSpamRuleCreate" => Permission::SysSpamRuleCreate,
|
|
b"sysSpamRuleUpdate" => Permission::SysSpamRuleUpdate,
|
|
b"sysSpamRuleDestroy" => Permission::SysSpamRuleDestroy,
|
|
b"sysSpamRuleQuery" => Permission::SysSpamRuleQuery,
|
|
b"sysSpamSettingsGet" => Permission::SysSpamSettingsGet,
|
|
b"sysSpamSettingsUpdate" => Permission::SysSpamSettingsUpdate,
|
|
b"sysSpamTagGet" => Permission::SysSpamTagGet,
|
|
b"sysSpamTagCreate" => Permission::SysSpamTagCreate,
|
|
b"sysSpamTagUpdate" => Permission::SysSpamTagUpdate,
|
|
b"sysSpamTagDestroy" => Permission::SysSpamTagDestroy,
|
|
b"sysSpamTagQuery" => Permission::SysSpamTagQuery,
|
|
b"sysSpamTrainingSampleGet" => Permission::SysSpamTrainingSampleGet,
|
|
b"sysSpamTrainingSampleCreate" => Permission::SysSpamTrainingSampleCreate,
|
|
b"sysSpamTrainingSampleUpdate" => Permission::SysSpamTrainingSampleUpdate,
|
|
b"sysSpamTrainingSampleDestroy" => Permission::SysSpamTrainingSampleDestroy,
|
|
b"sysSpamTrainingSampleQuery" => Permission::SysSpamTrainingSampleQuery,
|
|
b"sysSpfReportSettingsGet" => Permission::SysSpfReportSettingsGet,
|
|
b"sysSpfReportSettingsUpdate" => Permission::SysSpfReportSettingsUpdate,
|
|
b"sysStoreLookupGet" => Permission::SysStoreLookupGet,
|
|
b"sysStoreLookupCreate" => Permission::SysStoreLookupCreate,
|
|
b"sysStoreLookupUpdate" => Permission::SysStoreLookupUpdate,
|
|
b"sysStoreLookupDestroy" => Permission::SysStoreLookupDestroy,
|
|
b"sysStoreLookupQuery" => Permission::SysStoreLookupQuery,
|
|
b"sysSystemSettingsGet" => Permission::SysSystemSettingsGet,
|
|
b"sysSystemSettingsUpdate" => Permission::SysSystemSettingsUpdate,
|
|
b"taskIndexDocument" => Permission::TaskIndexDocument,
|
|
b"taskUnindexDocument" => Permission::TaskUnindexDocument,
|
|
b"taskIndexTrace" => Permission::TaskIndexTrace,
|
|
b"taskCalendarAlarmEmail" => Permission::TaskCalendarAlarmEmail,
|
|
b"taskCalendarAlarmNotification" => Permission::TaskCalendarAlarmNotification,
|
|
b"taskCalendarItipMessage" => Permission::TaskCalendarItipMessage,
|
|
b"taskMergeThreads" => Permission::TaskMergeThreads,
|
|
b"taskDmarcReport" => Permission::TaskDmarcReport,
|
|
b"taskTlsReport" => Permission::TaskTlsReport,
|
|
b"taskRestoreArchivedItem" => Permission::TaskRestoreArchivedItem,
|
|
b"taskDestroyAccount" => Permission::TaskDestroyAccount,
|
|
b"taskAccountMaintenance" => Permission::TaskAccountMaintenance,
|
|
b"taskTenantMaintenance" => Permission::TaskTenantMaintenance,
|
|
b"taskStoreMaintenance" => Permission::TaskStoreMaintenance,
|
|
b"taskSpamFilterMaintenance" => Permission::TaskSpamFilterMaintenance,
|
|
b"taskAcmeRenewal" => Permission::TaskAcmeRenewal,
|
|
b"taskDkimManagement" => Permission::TaskDkimManagement,
|
|
b"taskDnsManagement" => Permission::TaskDnsManagement,
|
|
b"sysTaskGet" => Permission::SysTaskGet,
|
|
b"sysTaskCreate" => Permission::SysTaskCreate,
|
|
b"sysTaskUpdate" => Permission::SysTaskUpdate,
|
|
b"sysTaskDestroy" => Permission::SysTaskDestroy,
|
|
b"sysTaskQuery" => Permission::SysTaskQuery,
|
|
b"sysTaskManagerGet" => Permission::SysTaskManagerGet,
|
|
b"sysTaskManagerUpdate" => Permission::SysTaskManagerUpdate,
|
|
b"sysTenantGet" => Permission::SysTenantGet,
|
|
b"sysTenantCreate" => Permission::SysTenantCreate,
|
|
b"sysTenantUpdate" => Permission::SysTenantUpdate,
|
|
b"sysTenantDestroy" => Permission::SysTenantDestroy,
|
|
b"sysTenantQuery" => Permission::SysTenantQuery,
|
|
b"sysTlsExternalReportGet" => Permission::SysTlsExternalReportGet,
|
|
b"sysTlsExternalReportCreate" => Permission::SysTlsExternalReportCreate,
|
|
b"sysTlsExternalReportUpdate" => Permission::SysTlsExternalReportUpdate,
|
|
b"sysTlsExternalReportDestroy" => Permission::SysTlsExternalReportDestroy,
|
|
b"sysTlsExternalReportQuery" => Permission::SysTlsExternalReportQuery,
|
|
b"sysTlsInternalReportGet" => Permission::SysTlsInternalReportGet,
|
|
b"sysTlsInternalReportCreate" => Permission::SysTlsInternalReportCreate,
|
|
b"sysTlsInternalReportUpdate" => Permission::SysTlsInternalReportUpdate,
|
|
b"sysTlsInternalReportDestroy" => Permission::SysTlsInternalReportDestroy,
|
|
b"sysTlsInternalReportQuery" => Permission::SysTlsInternalReportQuery,
|
|
b"sysTlsReportSettingsGet" => Permission::SysTlsReportSettingsGet,
|
|
b"sysTlsReportSettingsUpdate" => Permission::SysTlsReportSettingsUpdate,
|
|
b"sysTraceGet" => Permission::SysTraceGet,
|
|
b"sysTraceCreate" => Permission::SysTraceCreate,
|
|
b"sysTraceUpdate" => Permission::SysTraceUpdate,
|
|
b"sysTraceDestroy" => Permission::SysTraceDestroy,
|
|
b"sysTraceQuery" => Permission::SysTraceQuery,
|
|
b"sysTracerGet" => Permission::SysTracerGet,
|
|
b"sysTracerCreate" => Permission::SysTracerCreate,
|
|
b"sysTracerUpdate" => Permission::SysTracerUpdate,
|
|
b"sysTracerDestroy" => Permission::SysTracerDestroy,
|
|
b"sysTracerQuery" => Permission::SysTracerQuery,
|
|
b"sysTracingStoreGet" => Permission::SysTracingStoreGet,
|
|
b"sysTracingStoreUpdate" => Permission::SysTracingStoreUpdate,
|
|
b"sysWebDavGet" => Permission::SysWebDavGet,
|
|
b"sysWebDavUpdate" => Permission::SysWebDavUpdate,
|
|
b"sysWebHookGet" => Permission::SysWebHookGet,
|
|
b"sysWebHookCreate" => Permission::SysWebHookCreate,
|
|
b"sysWebHookUpdate" => Permission::SysWebHookUpdate,
|
|
b"sysWebHookDestroy" => Permission::SysWebHookDestroy,
|
|
b"sysWebHookQuery" => Permission::SysWebHookQuery,
|
|
}
|
|
.copied()
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
Permission::Authenticate => "authenticate",
|
|
Permission::AuthenticateWithAlias => "authenticateWithAlias",
|
|
Permission::InteractAi => "interactAi",
|
|
Permission::Impersonate => "impersonate",
|
|
Permission::UnlimitedRequests => "unlimitedRequests",
|
|
Permission::UnlimitedUploads => "unlimitedUploads",
|
|
Permission::FetchAnyBlob => "fetchAnyBlob",
|
|
Permission::EmailSend => "emailSend",
|
|
Permission::EmailReceive => "emailReceive",
|
|
Permission::CalendarAlarmsSend => "calendarAlarmsSend",
|
|
Permission::CalendarSchedulingSend => "calendarSchedulingSend",
|
|
Permission::CalendarSchedulingReceive => "calendarSchedulingReceive",
|
|
Permission::JmapPushSubscriptionGet => "jmapPushSubscriptionGet",
|
|
Permission::JmapPushSubscriptionCreate => "jmapPushSubscriptionCreate",
|
|
Permission::JmapPushSubscriptionUpdate => "jmapPushSubscriptionUpdate",
|
|
Permission::JmapPushSubscriptionDestroy => "jmapPushSubscriptionDestroy",
|
|
Permission::JmapMailboxGet => "jmapMailboxGet",
|
|
Permission::JmapMailboxChanges => "jmapMailboxChanges",
|
|
Permission::JmapMailboxQuery => "jmapMailboxQuery",
|
|
Permission::JmapMailboxQueryChanges => "jmapMailboxQueryChanges",
|
|
Permission::JmapMailboxCreate => "jmapMailboxCreate",
|
|
Permission::JmapMailboxUpdate => "jmapMailboxUpdate",
|
|
Permission::JmapMailboxDestroy => "jmapMailboxDestroy",
|
|
Permission::JmapThreadGet => "jmapThreadGet",
|
|
Permission::JmapThreadChanges => "jmapThreadChanges",
|
|
Permission::JmapEmailGet => "jmapEmailGet",
|
|
Permission::JmapEmailChanges => "jmapEmailChanges",
|
|
Permission::JmapEmailQuery => "jmapEmailQuery",
|
|
Permission::JmapEmailQueryChanges => "jmapEmailQueryChanges",
|
|
Permission::JmapEmailCreate => "jmapEmailCreate",
|
|
Permission::JmapEmailUpdate => "jmapEmailUpdate",
|
|
Permission::JmapEmailDestroy => "jmapEmailDestroy",
|
|
Permission::JmapEmailCopy => "jmapEmailCopy",
|
|
Permission::JmapEmailImport => "jmapEmailImport",
|
|
Permission::JmapEmailParse => "jmapEmailParse",
|
|
Permission::JmapSearchSnippetGet => "jmapSearchSnippetGet",
|
|
Permission::JmapIdentityGet => "jmapIdentityGet",
|
|
Permission::JmapIdentityChanges => "jmapIdentityChanges",
|
|
Permission::JmapIdentityCreate => "jmapIdentityCreate",
|
|
Permission::JmapIdentityUpdate => "jmapIdentityUpdate",
|
|
Permission::JmapIdentityDestroy => "jmapIdentityDestroy",
|
|
Permission::JmapEmailSubmissionGet => "jmapEmailSubmissionGet",
|
|
Permission::JmapEmailSubmissionChanges => "jmapEmailSubmissionChanges",
|
|
Permission::JmapEmailSubmissionQuery => "jmapEmailSubmissionQuery",
|
|
Permission::JmapEmailSubmissionQueryChanges => "jmapEmailSubmissionQueryChanges",
|
|
Permission::JmapEmailSubmissionCreate => "jmapEmailSubmissionCreate",
|
|
Permission::JmapEmailSubmissionUpdate => "jmapEmailSubmissionUpdate",
|
|
Permission::JmapEmailSubmissionDestroy => "jmapEmailSubmissionDestroy",
|
|
Permission::JmapVacationResponseGet => "jmapVacationResponseGet",
|
|
Permission::JmapVacationResponseCreate => "jmapVacationResponseCreate",
|
|
Permission::JmapVacationResponseUpdate => "jmapVacationResponseUpdate",
|
|
Permission::JmapVacationResponseDestroy => "jmapVacationResponseDestroy",
|
|
Permission::JmapSieveScriptGet => "jmapSieveScriptGet",
|
|
Permission::JmapSieveScriptQuery => "jmapSieveScriptQuery",
|
|
Permission::JmapSieveScriptValidate => "jmapSieveScriptValidate",
|
|
Permission::JmapSieveScriptCreate => "jmapSieveScriptCreate",
|
|
Permission::JmapSieveScriptUpdate => "jmapSieveScriptUpdate",
|
|
Permission::JmapSieveScriptDestroy => "jmapSieveScriptDestroy",
|
|
Permission::JmapPrincipalGet => "jmapPrincipalGet",
|
|
Permission::JmapPrincipalQuery => "jmapPrincipalQuery",
|
|
Permission::JmapPrincipalChanges => "jmapPrincipalChanges",
|
|
Permission::JmapPrincipalQueryChanges => "jmapPrincipalQueryChanges",
|
|
Permission::JmapPrincipalGetAvailability => "jmapPrincipalGetAvailability",
|
|
Permission::JmapPrincipalCreate => "jmapPrincipalCreate",
|
|
Permission::JmapPrincipalUpdate => "jmapPrincipalUpdate",
|
|
Permission::JmapPrincipalDestroy => "jmapPrincipalDestroy",
|
|
Permission::JmapQuotaGet => "jmapQuotaGet",
|
|
Permission::JmapQuotaChanges => "jmapQuotaChanges",
|
|
Permission::JmapQuotaQuery => "jmapQuotaQuery",
|
|
Permission::JmapQuotaQueryChanges => "jmapQuotaQueryChanges",
|
|
Permission::JmapBlobGet => "jmapBlobGet",
|
|
Permission::JmapBlobCopy => "jmapBlobCopy",
|
|
Permission::JmapBlobLookup => "jmapBlobLookup",
|
|
Permission::JmapBlobUpload => "jmapBlobUpload",
|
|
Permission::JmapAddressBookGet => "jmapAddressBookGet",
|
|
Permission::JmapAddressBookChanges => "jmapAddressBookChanges",
|
|
Permission::JmapAddressBookCreate => "jmapAddressBookCreate",
|
|
Permission::JmapAddressBookUpdate => "jmapAddressBookUpdate",
|
|
Permission::JmapAddressBookDestroy => "jmapAddressBookDestroy",
|
|
Permission::JmapContactCardGet => "jmapContactCardGet",
|
|
Permission::JmapContactCardChanges => "jmapContactCardChanges",
|
|
Permission::JmapContactCardQuery => "jmapContactCardQuery",
|
|
Permission::JmapContactCardQueryChanges => "jmapContactCardQueryChanges",
|
|
Permission::JmapContactCardCreate => "jmapContactCardCreate",
|
|
Permission::JmapContactCardUpdate => "jmapContactCardUpdate",
|
|
Permission::JmapContactCardDestroy => "jmapContactCardDestroy",
|
|
Permission::JmapContactCardCopy => "jmapContactCardCopy",
|
|
Permission::JmapContactCardParse => "jmapContactCardParse",
|
|
Permission::JmapFileNodeGet => "jmapFileNodeGet",
|
|
Permission::JmapFileNodeChanges => "jmapFileNodeChanges",
|
|
Permission::JmapFileNodeQuery => "jmapFileNodeQuery",
|
|
Permission::JmapFileNodeQueryChanges => "jmapFileNodeQueryChanges",
|
|
Permission::JmapFileNodeCreate => "jmapFileNodeCreate",
|
|
Permission::JmapFileNodeUpdate => "jmapFileNodeUpdate",
|
|
Permission::JmapFileNodeDestroy => "jmapFileNodeDestroy",
|
|
Permission::JmapFileNodeCopy => "jmapFileNodeCopy",
|
|
Permission::JmapShareNotificationGet => "jmapShareNotificationGet",
|
|
Permission::JmapShareNotificationChanges => "jmapShareNotificationChanges",
|
|
Permission::JmapShareNotificationQuery => "jmapShareNotificationQuery",
|
|
Permission::JmapShareNotificationQueryChanges => "jmapShareNotificationQueryChanges",
|
|
Permission::JmapShareNotificationCreate => "jmapShareNotificationCreate",
|
|
Permission::JmapShareNotificationUpdate => "jmapShareNotificationUpdate",
|
|
Permission::JmapShareNotificationDestroy => "jmapShareNotificationDestroy",
|
|
Permission::JmapCalendarGet => "jmapCalendarGet",
|
|
Permission::JmapCalendarChanges => "jmapCalendarChanges",
|
|
Permission::JmapCalendarCreate => "jmapCalendarCreate",
|
|
Permission::JmapCalendarUpdate => "jmapCalendarUpdate",
|
|
Permission::JmapCalendarDestroy => "jmapCalendarDestroy",
|
|
Permission::JmapCalendarEventGet => "jmapCalendarEventGet",
|
|
Permission::JmapCalendarEventChanges => "jmapCalendarEventChanges",
|
|
Permission::JmapCalendarEventQuery => "jmapCalendarEventQuery",
|
|
Permission::JmapCalendarEventQueryChanges => "jmapCalendarEventQueryChanges",
|
|
Permission::JmapCalendarEventCreate => "jmapCalendarEventCreate",
|
|
Permission::JmapCalendarEventUpdate => "jmapCalendarEventUpdate",
|
|
Permission::JmapCalendarEventDestroy => "jmapCalendarEventDestroy",
|
|
Permission::JmapCalendarEventCopy => "jmapCalendarEventCopy",
|
|
Permission::JmapCalendarEventParse => "jmapCalendarEventParse",
|
|
Permission::JmapCalendarEventNotificationGet => "jmapCalendarEventNotificationGet",
|
|
Permission::JmapCalendarEventNotificationChanges => {
|
|
"jmapCalendarEventNotificationChanges"
|
|
}
|
|
Permission::JmapCalendarEventNotificationQuery => "jmapCalendarEventNotificationQuery",
|
|
Permission::JmapCalendarEventNotificationQueryChanges => {
|
|
"jmapCalendarEventNotificationQueryChanges"
|
|
}
|
|
Permission::JmapCalendarEventNotificationCreate => {
|
|
"jmapCalendarEventNotificationCreate"
|
|
}
|
|
Permission::JmapCalendarEventNotificationUpdate => {
|
|
"jmapCalendarEventNotificationUpdate"
|
|
}
|
|
Permission::JmapCalendarEventNotificationDestroy => {
|
|
"jmapCalendarEventNotificationDestroy"
|
|
}
|
|
Permission::JmapParticipantIdentityGet => "jmapParticipantIdentityGet",
|
|
Permission::JmapParticipantIdentityChanges => "jmapParticipantIdentityChanges",
|
|
Permission::JmapParticipantIdentityCreate => "jmapParticipantIdentityCreate",
|
|
Permission::JmapParticipantIdentityUpdate => "jmapParticipantIdentityUpdate",
|
|
Permission::JmapParticipantIdentityDestroy => "jmapParticipantIdentityDestroy",
|
|
Permission::JmapCoreEcho => "jmapCoreEcho",
|
|
Permission::ImapAuthenticate => "imapAuthenticate",
|
|
Permission::ImapAclGet => "imapAclGet",
|
|
Permission::ImapAclSet => "imapAclSet",
|
|
Permission::ImapMyRights => "imapMyRights",
|
|
Permission::ImapListRights => "imapListRights",
|
|
Permission::ImapAppend => "imapAppend",
|
|
Permission::ImapCapability => "imapCapability",
|
|
Permission::ImapId => "imapId",
|
|
Permission::ImapCopy => "imapCopy",
|
|
Permission::ImapMove => "imapMove",
|
|
Permission::ImapCreate => "imapCreate",
|
|
Permission::ImapDelete => "imapDelete",
|
|
Permission::ImapEnable => "imapEnable",
|
|
Permission::ImapExpunge => "imapExpunge",
|
|
Permission::ImapFetch => "imapFetch",
|
|
Permission::ImapIdle => "imapIdle",
|
|
Permission::ImapList => "imapList",
|
|
Permission::ImapLsub => "imapLsub",
|
|
Permission::ImapNamespace => "imapNamespace",
|
|
Permission::ImapRename => "imapRename",
|
|
Permission::ImapSearch => "imapSearch",
|
|
Permission::ImapSort => "imapSort",
|
|
Permission::ImapSelect => "imapSelect",
|
|
Permission::ImapExamine => "imapExamine",
|
|
Permission::ImapStatus => "imapStatus",
|
|
Permission::ImapStore => "imapStore",
|
|
Permission::ImapSubscribe => "imapSubscribe",
|
|
Permission::ImapThread => "imapThread",
|
|
Permission::Pop3Authenticate => "pop3Authenticate",
|
|
Permission::Pop3List => "pop3List",
|
|
Permission::Pop3Uidl => "pop3Uidl",
|
|
Permission::Pop3Stat => "pop3Stat",
|
|
Permission::Pop3Retr => "pop3Retr",
|
|
Permission::Pop3Dele => "pop3Dele",
|
|
Permission::SieveAuthenticate => "sieveAuthenticate",
|
|
Permission::SieveListScripts => "sieveListScripts",
|
|
Permission::SieveSetActive => "sieveSetActive",
|
|
Permission::SieveGetScript => "sieveGetScript",
|
|
Permission::SievePutScript => "sievePutScript",
|
|
Permission::SieveDeleteScript => "sieveDeleteScript",
|
|
Permission::SieveRenameScript => "sieveRenameScript",
|
|
Permission::SieveCheckScript => "sieveCheckScript",
|
|
Permission::SieveHaveSpace => "sieveHaveSpace",
|
|
Permission::DavSyncCollection => "davSyncCollection",
|
|
Permission::DavExpandProperty => "davExpandProperty",
|
|
Permission::DavPrincipalAcl => "davPrincipalAcl",
|
|
Permission::DavPrincipalList => "davPrincipalList",
|
|
Permission::DavPrincipalMatch => "davPrincipalMatch",
|
|
Permission::DavPrincipalSearch => "davPrincipalSearch",
|
|
Permission::DavPrincipalSearchPropSet => "davPrincipalSearchPropSet",
|
|
Permission::DavFilePropFind => "davFilePropFind",
|
|
Permission::DavFilePropPatch => "davFilePropPatch",
|
|
Permission::DavFileGet => "davFileGet",
|
|
Permission::DavFileMkCol => "davFileMkCol",
|
|
Permission::DavFileDelete => "davFileDelete",
|
|
Permission::DavFilePut => "davFilePut",
|
|
Permission::DavFileCopy => "davFileCopy",
|
|
Permission::DavFileMove => "davFileMove",
|
|
Permission::DavFileLock => "davFileLock",
|
|
Permission::DavFileAcl => "davFileAcl",
|
|
Permission::DavCardPropFind => "davCardPropFind",
|
|
Permission::DavCardPropPatch => "davCardPropPatch",
|
|
Permission::DavCardGet => "davCardGet",
|
|
Permission::DavCardMkCol => "davCardMkCol",
|
|
Permission::DavCardDelete => "davCardDelete",
|
|
Permission::DavCardPut => "davCardPut",
|
|
Permission::DavCardCopy => "davCardCopy",
|
|
Permission::DavCardMove => "davCardMove",
|
|
Permission::DavCardLock => "davCardLock",
|
|
Permission::DavCardAcl => "davCardAcl",
|
|
Permission::DavCardQuery => "davCardQuery",
|
|
Permission::DavCardMultiGet => "davCardMultiGet",
|
|
Permission::DavCalPropFind => "davCalPropFind",
|
|
Permission::DavCalPropPatch => "davCalPropPatch",
|
|
Permission::DavCalGet => "davCalGet",
|
|
Permission::DavCalMkCol => "davCalMkCol",
|
|
Permission::DavCalDelete => "davCalDelete",
|
|
Permission::DavCalPut => "davCalPut",
|
|
Permission::DavCalCopy => "davCalCopy",
|
|
Permission::DavCalMove => "davCalMove",
|
|
Permission::DavCalLock => "davCalLock",
|
|
Permission::DavCalAcl => "davCalAcl",
|
|
Permission::DavCalQuery => "davCalQuery",
|
|
Permission::DavCalMultiGet => "davCalMultiGet",
|
|
Permission::DavCalFreeBusyQuery => "davCalFreeBusyQuery",
|
|
Permission::OAuthClientRegistration => "oAuthClientRegistration",
|
|
Permission::OAuthClientOverride => "oAuthClientOverride",
|
|
Permission::LiveTracing => "liveTracing",
|
|
Permission::LiveMetrics => "liveMetrics",
|
|
Permission::LiveDeliveryTest => "liveDeliveryTest",
|
|
Permission::ScimAccess => "scimAccess",
|
|
Permission::SysAccountGet => "sysAccountGet",
|
|
Permission::SysAccountCreate => "sysAccountCreate",
|
|
Permission::SysAccountUpdate => "sysAccountUpdate",
|
|
Permission::SysAccountDestroy => "sysAccountDestroy",
|
|
Permission::SysAccountQuery => "sysAccountQuery",
|
|
Permission::SysAccountPasswordGet => "sysAccountPasswordGet",
|
|
Permission::SysAccountPasswordUpdate => "sysAccountPasswordUpdate",
|
|
Permission::SysAccountSettingsGet => "sysAccountSettingsGet",
|
|
Permission::SysAccountSettingsUpdate => "sysAccountSettingsUpdate",
|
|
Permission::SysAcmeProviderGet => "sysAcmeProviderGet",
|
|
Permission::SysAcmeProviderCreate => "sysAcmeProviderCreate",
|
|
Permission::SysAcmeProviderUpdate => "sysAcmeProviderUpdate",
|
|
Permission::SysAcmeProviderDestroy => "sysAcmeProviderDestroy",
|
|
Permission::SysAcmeProviderQuery => "sysAcmeProviderQuery",
|
|
Permission::ActionReloadSettings => "actionReloadSettings",
|
|
Permission::ActionReloadTlsCertificates => "actionReloadTlsCertificates",
|
|
Permission::ActionReloadLookupStores => "actionReloadLookupStores",
|
|
Permission::ActionReloadBlockedIps => "actionReloadBlockedIps",
|
|
Permission::ActionUpdateApps => "actionUpdateApps",
|
|
Permission::ActionTroubleshootDmarc => "actionTroubleshootDmarc",
|
|
Permission::ActionClassifySpam => "actionClassifySpam",
|
|
Permission::ActionInvalidateCaches => "actionInvalidateCaches",
|
|
Permission::ActionInvalidateNegativeCaches => "actionInvalidateNegativeCaches",
|
|
Permission::ActionPauseMtaQueue => "actionPauseMtaQueue",
|
|
Permission::ActionResumeMtaQueue => "actionResumeMtaQueue",
|
|
Permission::SysActionGet => "sysActionGet",
|
|
Permission::SysActionCreate => "sysActionCreate",
|
|
Permission::SysActionUpdate => "sysActionUpdate",
|
|
Permission::SysActionDestroy => "sysActionDestroy",
|
|
Permission::SysActionQuery => "sysActionQuery",
|
|
Permission::SysAddressBookGet => "sysAddressBookGet",
|
|
Permission::SysAddressBookUpdate => "sysAddressBookUpdate",
|
|
Permission::SysAiModelGet => "sysAiModelGet",
|
|
Permission::SysAiModelCreate => "sysAiModelCreate",
|
|
Permission::SysAiModelUpdate => "sysAiModelUpdate",
|
|
Permission::SysAiModelDestroy => "sysAiModelDestroy",
|
|
Permission::SysAiModelQuery => "sysAiModelQuery",
|
|
Permission::SysAlertGet => "sysAlertGet",
|
|
Permission::SysAlertCreate => "sysAlertCreate",
|
|
Permission::SysAlertUpdate => "sysAlertUpdate",
|
|
Permission::SysAlertDestroy => "sysAlertDestroy",
|
|
Permission::SysAlertQuery => "sysAlertQuery",
|
|
Permission::SysAllowedIpGet => "sysAllowedIpGet",
|
|
Permission::SysAllowedIpCreate => "sysAllowedIpCreate",
|
|
Permission::SysAllowedIpUpdate => "sysAllowedIpUpdate",
|
|
Permission::SysAllowedIpDestroy => "sysAllowedIpDestroy",
|
|
Permission::SysAllowedIpQuery => "sysAllowedIpQuery",
|
|
Permission::SysApiKeyGet => "sysApiKeyGet",
|
|
Permission::SysApiKeyCreate => "sysApiKeyCreate",
|
|
Permission::SysApiKeyUpdate => "sysApiKeyUpdate",
|
|
Permission::SysApiKeyDestroy => "sysApiKeyDestroy",
|
|
Permission::SysApiKeyQuery => "sysApiKeyQuery",
|
|
Permission::SysAppPasswordGet => "sysAppPasswordGet",
|
|
Permission::SysAppPasswordCreate => "sysAppPasswordCreate",
|
|
Permission::SysAppPasswordUpdate => "sysAppPasswordUpdate",
|
|
Permission::SysAppPasswordDestroy => "sysAppPasswordDestroy",
|
|
Permission::SysAppPasswordQuery => "sysAppPasswordQuery",
|
|
Permission::SysApplicationGet => "sysApplicationGet",
|
|
Permission::SysApplicationCreate => "sysApplicationCreate",
|
|
Permission::SysApplicationUpdate => "sysApplicationUpdate",
|
|
Permission::SysApplicationDestroy => "sysApplicationDestroy",
|
|
Permission::SysApplicationQuery => "sysApplicationQuery",
|
|
Permission::SysArchivedItemGet => "sysArchivedItemGet",
|
|
Permission::SysArchivedItemCreate => "sysArchivedItemCreate",
|
|
Permission::SysArchivedItemUpdate => "sysArchivedItemUpdate",
|
|
Permission::SysArchivedItemDestroy => "sysArchivedItemDestroy",
|
|
Permission::SysArchivedItemQuery => "sysArchivedItemQuery",
|
|
Permission::SysArfExternalReportGet => "sysArfExternalReportGet",
|
|
Permission::SysArfExternalReportCreate => "sysArfExternalReportCreate",
|
|
Permission::SysArfExternalReportUpdate => "sysArfExternalReportUpdate",
|
|
Permission::SysArfExternalReportDestroy => "sysArfExternalReportDestroy",
|
|
Permission::SysArfExternalReportQuery => "sysArfExternalReportQuery",
|
|
Permission::SysAsnGet => "sysAsnGet",
|
|
Permission::SysAsnUpdate => "sysAsnUpdate",
|
|
Permission::SysAuthenticationGet => "sysAuthenticationGet",
|
|
Permission::SysAuthenticationUpdate => "sysAuthenticationUpdate",
|
|
Permission::SysBlobStoreGet => "sysBlobStoreGet",
|
|
Permission::SysBlobStoreUpdate => "sysBlobStoreUpdate",
|
|
Permission::SysBlockedIpGet => "sysBlockedIpGet",
|
|
Permission::SysBlockedIpCreate => "sysBlockedIpCreate",
|
|
Permission::SysBlockedIpUpdate => "sysBlockedIpUpdate",
|
|
Permission::SysBlockedIpDestroy => "sysBlockedIpDestroy",
|
|
Permission::SysBlockedIpQuery => "sysBlockedIpQuery",
|
|
Permission::SysBootstrapGet => "sysBootstrapGet",
|
|
Permission::SysBootstrapUpdate => "sysBootstrapUpdate",
|
|
Permission::SysCacheGet => "sysCacheGet",
|
|
Permission::SysCacheUpdate => "sysCacheUpdate",
|
|
Permission::SysCalendarGet => "sysCalendarGet",
|
|
Permission::SysCalendarUpdate => "sysCalendarUpdate",
|
|
Permission::SysCalendarAlarmGet => "sysCalendarAlarmGet",
|
|
Permission::SysCalendarAlarmUpdate => "sysCalendarAlarmUpdate",
|
|
Permission::SysCalendarSchedulingGet => "sysCalendarSchedulingGet",
|
|
Permission::SysCalendarSchedulingUpdate => "sysCalendarSchedulingUpdate",
|
|
Permission::SysCertificateGet => "sysCertificateGet",
|
|
Permission::SysCertificateCreate => "sysCertificateCreate",
|
|
Permission::SysCertificateUpdate => "sysCertificateUpdate",
|
|
Permission::SysCertificateDestroy => "sysCertificateDestroy",
|
|
Permission::SysCertificateQuery => "sysCertificateQuery",
|
|
Permission::SysClusterNodeGet => "sysClusterNodeGet",
|
|
Permission::SysClusterNodeCreate => "sysClusterNodeCreate",
|
|
Permission::SysClusterNodeUpdate => "sysClusterNodeUpdate",
|
|
Permission::SysClusterNodeDestroy => "sysClusterNodeDestroy",
|
|
Permission::SysClusterNodeQuery => "sysClusterNodeQuery",
|
|
Permission::SysClusterRoleGet => "sysClusterRoleGet",
|
|
Permission::SysClusterRoleCreate => "sysClusterRoleCreate",
|
|
Permission::SysClusterRoleUpdate => "sysClusterRoleUpdate",
|
|
Permission::SysClusterRoleDestroy => "sysClusterRoleDestroy",
|
|
Permission::SysClusterRoleQuery => "sysClusterRoleQuery",
|
|
Permission::SysCoordinatorGet => "sysCoordinatorGet",
|
|
Permission::SysCoordinatorUpdate => "sysCoordinatorUpdate",
|
|
Permission::SysDataRetentionGet => "sysDataRetentionGet",
|
|
Permission::SysDataRetentionUpdate => "sysDataRetentionUpdate",
|
|
Permission::SysDataStoreGet => "sysDataStoreGet",
|
|
Permission::SysDataStoreUpdate => "sysDataStoreUpdate",
|
|
Permission::SysDirectoryGet => "sysDirectoryGet",
|
|
Permission::SysDirectoryCreate => "sysDirectoryCreate",
|
|
Permission::SysDirectoryUpdate => "sysDirectoryUpdate",
|
|
Permission::SysDirectoryDestroy => "sysDirectoryDestroy",
|
|
Permission::SysDirectoryQuery => "sysDirectoryQuery",
|
|
Permission::SysDkimReportSettingsGet => "sysDkimReportSettingsGet",
|
|
Permission::SysDkimReportSettingsUpdate => "sysDkimReportSettingsUpdate",
|
|
Permission::SysDkimSignatureGet => "sysDkimSignatureGet",
|
|
Permission::SysDkimSignatureCreate => "sysDkimSignatureCreate",
|
|
Permission::SysDkimSignatureUpdate => "sysDkimSignatureUpdate",
|
|
Permission::SysDkimSignatureDestroy => "sysDkimSignatureDestroy",
|
|
Permission::SysDkimSignatureQuery => "sysDkimSignatureQuery",
|
|
Permission::SysDmarcExternalReportGet => "sysDmarcExternalReportGet",
|
|
Permission::SysDmarcExternalReportCreate => "sysDmarcExternalReportCreate",
|
|
Permission::SysDmarcExternalReportUpdate => "sysDmarcExternalReportUpdate",
|
|
Permission::SysDmarcExternalReportDestroy => "sysDmarcExternalReportDestroy",
|
|
Permission::SysDmarcExternalReportQuery => "sysDmarcExternalReportQuery",
|
|
Permission::SysDmarcInternalReportGet => "sysDmarcInternalReportGet",
|
|
Permission::SysDmarcInternalReportCreate => "sysDmarcInternalReportCreate",
|
|
Permission::SysDmarcInternalReportUpdate => "sysDmarcInternalReportUpdate",
|
|
Permission::SysDmarcInternalReportDestroy => "sysDmarcInternalReportDestroy",
|
|
Permission::SysDmarcInternalReportQuery => "sysDmarcInternalReportQuery",
|
|
Permission::SysDmarcReportSettingsGet => "sysDmarcReportSettingsGet",
|
|
Permission::SysDmarcReportSettingsUpdate => "sysDmarcReportSettingsUpdate",
|
|
Permission::SysDnsResolverGet => "sysDnsResolverGet",
|
|
Permission::SysDnsResolverUpdate => "sysDnsResolverUpdate",
|
|
Permission::SysDnsServerGet => "sysDnsServerGet",
|
|
Permission::SysDnsServerCreate => "sysDnsServerCreate",
|
|
Permission::SysDnsServerUpdate => "sysDnsServerUpdate",
|
|
Permission::SysDnsServerDestroy => "sysDnsServerDestroy",
|
|
Permission::SysDnsServerQuery => "sysDnsServerQuery",
|
|
Permission::SysDomainGet => "sysDomainGet",
|
|
Permission::SysDomainCreate => "sysDomainCreate",
|
|
Permission::SysDomainUpdate => "sysDomainUpdate",
|
|
Permission::SysDomainDestroy => "sysDomainDestroy",
|
|
Permission::SysDomainQuery => "sysDomainQuery",
|
|
Permission::SysDsnReportSettingsGet => "sysDsnReportSettingsGet",
|
|
Permission::SysDsnReportSettingsUpdate => "sysDsnReportSettingsUpdate",
|
|
Permission::SysEmailGet => "sysEmailGet",
|
|
Permission::SysEmailUpdate => "sysEmailUpdate",
|
|
Permission::SysEnterpriseGet => "sysEnterpriseGet",
|
|
Permission::SysEnterpriseUpdate => "sysEnterpriseUpdate",
|
|
Permission::SysEventTracingLevelGet => "sysEventTracingLevelGet",
|
|
Permission::SysEventTracingLevelCreate => "sysEventTracingLevelCreate",
|
|
Permission::SysEventTracingLevelUpdate => "sysEventTracingLevelUpdate",
|
|
Permission::SysEventTracingLevelDestroy => "sysEventTracingLevelDestroy",
|
|
Permission::SysEventTracingLevelQuery => "sysEventTracingLevelQuery",
|
|
Permission::SysFileStorageGet => "sysFileStorageGet",
|
|
Permission::SysFileStorageUpdate => "sysFileStorageUpdate",
|
|
Permission::SysHttpGet => "sysHttpGet",
|
|
Permission::SysHttpUpdate => "sysHttpUpdate",
|
|
Permission::SysHttpFormGet => "sysHttpFormGet",
|
|
Permission::SysHttpFormUpdate => "sysHttpFormUpdate",
|
|
Permission::SysHttpLookupGet => "sysHttpLookupGet",
|
|
Permission::SysHttpLookupCreate => "sysHttpLookupCreate",
|
|
Permission::SysHttpLookupUpdate => "sysHttpLookupUpdate",
|
|
Permission::SysHttpLookupDestroy => "sysHttpLookupDestroy",
|
|
Permission::SysHttpLookupQuery => "sysHttpLookupQuery",
|
|
Permission::SysImapGet => "sysImapGet",
|
|
Permission::SysImapUpdate => "sysImapUpdate",
|
|
Permission::SysInMemoryStoreGet => "sysInMemoryStoreGet",
|
|
Permission::SysInMemoryStoreUpdate => "sysInMemoryStoreUpdate",
|
|
Permission::SysJmapGet => "sysJmapGet",
|
|
Permission::SysJmapUpdate => "sysJmapUpdate",
|
|
Permission::SysLogGet => "sysLogGet",
|
|
Permission::SysLogCreate => "sysLogCreate",
|
|
Permission::SysLogUpdate => "sysLogUpdate",
|
|
Permission::SysLogDestroy => "sysLogDestroy",
|
|
Permission::SysLogQuery => "sysLogQuery",
|
|
Permission::SysMailingListGet => "sysMailingListGet",
|
|
Permission::SysMailingListCreate => "sysMailingListCreate",
|
|
Permission::SysMailingListUpdate => "sysMailingListUpdate",
|
|
Permission::SysMailingListDestroy => "sysMailingListDestroy",
|
|
Permission::SysMailingListQuery => "sysMailingListQuery",
|
|
Permission::SysMaskedEmailGet => "sysMaskedEmailGet",
|
|
Permission::SysMaskedEmailCreate => "sysMaskedEmailCreate",
|
|
Permission::SysMaskedEmailUpdate => "sysMaskedEmailUpdate",
|
|
Permission::SysMaskedEmailDestroy => "sysMaskedEmailDestroy",
|
|
Permission::SysMaskedEmailQuery => "sysMaskedEmailQuery",
|
|
Permission::SysMemoryLookupKeyGet => "sysMemoryLookupKeyGet",
|
|
Permission::SysMemoryLookupKeyCreate => "sysMemoryLookupKeyCreate",
|
|
Permission::SysMemoryLookupKeyUpdate => "sysMemoryLookupKeyUpdate",
|
|
Permission::SysMemoryLookupKeyDestroy => "sysMemoryLookupKeyDestroy",
|
|
Permission::SysMemoryLookupKeyQuery => "sysMemoryLookupKeyQuery",
|
|
Permission::SysMemoryLookupKeyValueGet => "sysMemoryLookupKeyValueGet",
|
|
Permission::SysMemoryLookupKeyValueCreate => "sysMemoryLookupKeyValueCreate",
|
|
Permission::SysMemoryLookupKeyValueUpdate => "sysMemoryLookupKeyValueUpdate",
|
|
Permission::SysMemoryLookupKeyValueDestroy => "sysMemoryLookupKeyValueDestroy",
|
|
Permission::SysMemoryLookupKeyValueQuery => "sysMemoryLookupKeyValueQuery",
|
|
Permission::SysMetricGet => "sysMetricGet",
|
|
Permission::SysMetricCreate => "sysMetricCreate",
|
|
Permission::SysMetricUpdate => "sysMetricUpdate",
|
|
Permission::SysMetricDestroy => "sysMetricDestroy",
|
|
Permission::SysMetricQuery => "sysMetricQuery",
|
|
Permission::SysMetricsGet => "sysMetricsGet",
|
|
Permission::SysMetricsUpdate => "sysMetricsUpdate",
|
|
Permission::SysMetricsStoreGet => "sysMetricsStoreGet",
|
|
Permission::SysMetricsStoreUpdate => "sysMetricsStoreUpdate",
|
|
Permission::SysMtaConnectionStrategyGet => "sysMtaConnectionStrategyGet",
|
|
Permission::SysMtaConnectionStrategyCreate => "sysMtaConnectionStrategyCreate",
|
|
Permission::SysMtaConnectionStrategyUpdate => "sysMtaConnectionStrategyUpdate",
|
|
Permission::SysMtaConnectionStrategyDestroy => "sysMtaConnectionStrategyDestroy",
|
|
Permission::SysMtaConnectionStrategyQuery => "sysMtaConnectionStrategyQuery",
|
|
Permission::SysMtaDeliveryScheduleGet => "sysMtaDeliveryScheduleGet",
|
|
Permission::SysMtaDeliveryScheduleCreate => "sysMtaDeliveryScheduleCreate",
|
|
Permission::SysMtaDeliveryScheduleUpdate => "sysMtaDeliveryScheduleUpdate",
|
|
Permission::SysMtaDeliveryScheduleDestroy => "sysMtaDeliveryScheduleDestroy",
|
|
Permission::SysMtaDeliveryScheduleQuery => "sysMtaDeliveryScheduleQuery",
|
|
Permission::SysMtaExtensionsGet => "sysMtaExtensionsGet",
|
|
Permission::SysMtaExtensionsUpdate => "sysMtaExtensionsUpdate",
|
|
Permission::SysMtaHookGet => "sysMtaHookGet",
|
|
Permission::SysMtaHookCreate => "sysMtaHookCreate",
|
|
Permission::SysMtaHookUpdate => "sysMtaHookUpdate",
|
|
Permission::SysMtaHookDestroy => "sysMtaHookDestroy",
|
|
Permission::SysMtaHookQuery => "sysMtaHookQuery",
|
|
Permission::SysMtaInboundSessionGet => "sysMtaInboundSessionGet",
|
|
Permission::SysMtaInboundSessionUpdate => "sysMtaInboundSessionUpdate",
|
|
Permission::SysMtaInboundThrottleGet => "sysMtaInboundThrottleGet",
|
|
Permission::SysMtaInboundThrottleCreate => "sysMtaInboundThrottleCreate",
|
|
Permission::SysMtaInboundThrottleUpdate => "sysMtaInboundThrottleUpdate",
|
|
Permission::SysMtaInboundThrottleDestroy => "sysMtaInboundThrottleDestroy",
|
|
Permission::SysMtaInboundThrottleQuery => "sysMtaInboundThrottleQuery",
|
|
Permission::SysMtaMilterGet => "sysMtaMilterGet",
|
|
Permission::SysMtaMilterCreate => "sysMtaMilterCreate",
|
|
Permission::SysMtaMilterUpdate => "sysMtaMilterUpdate",
|
|
Permission::SysMtaMilterDestroy => "sysMtaMilterDestroy",
|
|
Permission::SysMtaMilterQuery => "sysMtaMilterQuery",
|
|
Permission::SysMtaOutboundStrategyGet => "sysMtaOutboundStrategyGet",
|
|
Permission::SysMtaOutboundStrategyUpdate => "sysMtaOutboundStrategyUpdate",
|
|
Permission::SysMtaOutboundThrottleGet => "sysMtaOutboundThrottleGet",
|
|
Permission::SysMtaOutboundThrottleCreate => "sysMtaOutboundThrottleCreate",
|
|
Permission::SysMtaOutboundThrottleUpdate => "sysMtaOutboundThrottleUpdate",
|
|
Permission::SysMtaOutboundThrottleDestroy => "sysMtaOutboundThrottleDestroy",
|
|
Permission::SysMtaOutboundThrottleQuery => "sysMtaOutboundThrottleQuery",
|
|
Permission::SysMtaQueueQuotaGet => "sysMtaQueueQuotaGet",
|
|
Permission::SysMtaQueueQuotaCreate => "sysMtaQueueQuotaCreate",
|
|
Permission::SysMtaQueueQuotaUpdate => "sysMtaQueueQuotaUpdate",
|
|
Permission::SysMtaQueueQuotaDestroy => "sysMtaQueueQuotaDestroy",
|
|
Permission::SysMtaQueueQuotaQuery => "sysMtaQueueQuotaQuery",
|
|
Permission::SysMtaRouteGet => "sysMtaRouteGet",
|
|
Permission::SysMtaRouteCreate => "sysMtaRouteCreate",
|
|
Permission::SysMtaRouteUpdate => "sysMtaRouteUpdate",
|
|
Permission::SysMtaRouteDestroy => "sysMtaRouteDestroy",
|
|
Permission::SysMtaRouteQuery => "sysMtaRouteQuery",
|
|
Permission::SysMtaStageAuthGet => "sysMtaStageAuthGet",
|
|
Permission::SysMtaStageAuthUpdate => "sysMtaStageAuthUpdate",
|
|
Permission::SysMtaStageConnectGet => "sysMtaStageConnectGet",
|
|
Permission::SysMtaStageConnectUpdate => "sysMtaStageConnectUpdate",
|
|
Permission::SysMtaStageDataGet => "sysMtaStageDataGet",
|
|
Permission::SysMtaStageDataUpdate => "sysMtaStageDataUpdate",
|
|
Permission::SysMtaStageEhloGet => "sysMtaStageEhloGet",
|
|
Permission::SysMtaStageEhloUpdate => "sysMtaStageEhloUpdate",
|
|
Permission::SysMtaStageMailGet => "sysMtaStageMailGet",
|
|
Permission::SysMtaStageMailUpdate => "sysMtaStageMailUpdate",
|
|
Permission::SysMtaStageRcptGet => "sysMtaStageRcptGet",
|
|
Permission::SysMtaStageRcptUpdate => "sysMtaStageRcptUpdate",
|
|
Permission::SysMtaStsGet => "sysMtaStsGet",
|
|
Permission::SysMtaStsUpdate => "sysMtaStsUpdate",
|
|
Permission::SysMtaTlsStrategyGet => "sysMtaTlsStrategyGet",
|
|
Permission::SysMtaTlsStrategyCreate => "sysMtaTlsStrategyCreate",
|
|
Permission::SysMtaTlsStrategyUpdate => "sysMtaTlsStrategyUpdate",
|
|
Permission::SysMtaTlsStrategyDestroy => "sysMtaTlsStrategyDestroy",
|
|
Permission::SysMtaTlsStrategyQuery => "sysMtaTlsStrategyQuery",
|
|
Permission::SysMtaVirtualQueueGet => "sysMtaVirtualQueueGet",
|
|
Permission::SysMtaVirtualQueueCreate => "sysMtaVirtualQueueCreate",
|
|
Permission::SysMtaVirtualQueueUpdate => "sysMtaVirtualQueueUpdate",
|
|
Permission::SysMtaVirtualQueueDestroy => "sysMtaVirtualQueueDestroy",
|
|
Permission::SysMtaVirtualQueueQuery => "sysMtaVirtualQueueQuery",
|
|
Permission::SysNetworkListenerGet => "sysNetworkListenerGet",
|
|
Permission::SysNetworkListenerCreate => "sysNetworkListenerCreate",
|
|
Permission::SysNetworkListenerUpdate => "sysNetworkListenerUpdate",
|
|
Permission::SysNetworkListenerDestroy => "sysNetworkListenerDestroy",
|
|
Permission::SysNetworkListenerQuery => "sysNetworkListenerQuery",
|
|
Permission::SysOAuthClientGet => "sysOAuthClientGet",
|
|
Permission::SysOAuthClientCreate => "sysOAuthClientCreate",
|
|
Permission::SysOAuthClientUpdate => "sysOAuthClientUpdate",
|
|
Permission::SysOAuthClientDestroy => "sysOAuthClientDestroy",
|
|
Permission::SysOAuthClientQuery => "sysOAuthClientQuery",
|
|
Permission::SysOidcProviderGet => "sysOidcProviderGet",
|
|
Permission::SysOidcProviderUpdate => "sysOidcProviderUpdate",
|
|
Permission::SysPublicKeyGet => "sysPublicKeyGet",
|
|
Permission::SysPublicKeyCreate => "sysPublicKeyCreate",
|
|
Permission::SysPublicKeyUpdate => "sysPublicKeyUpdate",
|
|
Permission::SysPublicKeyDestroy => "sysPublicKeyDestroy",
|
|
Permission::SysPublicKeyQuery => "sysPublicKeyQuery",
|
|
Permission::SysQueuedMessageGet => "sysQueuedMessageGet",
|
|
Permission::SysQueuedMessageCreate => "sysQueuedMessageCreate",
|
|
Permission::SysQueuedMessageUpdate => "sysQueuedMessageUpdate",
|
|
Permission::SysQueuedMessageDestroy => "sysQueuedMessageDestroy",
|
|
Permission::SysQueuedMessageQuery => "sysQueuedMessageQuery",
|
|
Permission::SysReportSettingsGet => "sysReportSettingsGet",
|
|
Permission::SysReportSettingsUpdate => "sysReportSettingsUpdate",
|
|
Permission::SysRoleGet => "sysRoleGet",
|
|
Permission::SysRoleCreate => "sysRoleCreate",
|
|
Permission::SysRoleUpdate => "sysRoleUpdate",
|
|
Permission::SysRoleDestroy => "sysRoleDestroy",
|
|
Permission::SysRoleQuery => "sysRoleQuery",
|
|
Permission::SysSearchGet => "sysSearchGet",
|
|
Permission::SysSearchUpdate => "sysSearchUpdate",
|
|
Permission::SysSearchStoreGet => "sysSearchStoreGet",
|
|
Permission::SysSearchStoreUpdate => "sysSearchStoreUpdate",
|
|
Permission::SysSecurityGet => "sysSecurityGet",
|
|
Permission::SysSecurityUpdate => "sysSecurityUpdate",
|
|
Permission::SysSenderAuthGet => "sysSenderAuthGet",
|
|
Permission::SysSenderAuthUpdate => "sysSenderAuthUpdate",
|
|
Permission::SysSharingGet => "sysSharingGet",
|
|
Permission::SysSharingUpdate => "sysSharingUpdate",
|
|
Permission::SysSieveSystemInterpreterGet => "sysSieveSystemInterpreterGet",
|
|
Permission::SysSieveSystemInterpreterUpdate => "sysSieveSystemInterpreterUpdate",
|
|
Permission::SysSieveSystemScriptGet => "sysSieveSystemScriptGet",
|
|
Permission::SysSieveSystemScriptCreate => "sysSieveSystemScriptCreate",
|
|
Permission::SysSieveSystemScriptUpdate => "sysSieveSystemScriptUpdate",
|
|
Permission::SysSieveSystemScriptDestroy => "sysSieveSystemScriptDestroy",
|
|
Permission::SysSieveSystemScriptQuery => "sysSieveSystemScriptQuery",
|
|
Permission::SysSieveUserInterpreterGet => "sysSieveUserInterpreterGet",
|
|
Permission::SysSieveUserInterpreterUpdate => "sysSieveUserInterpreterUpdate",
|
|
Permission::SysSieveUserScriptGet => "sysSieveUserScriptGet",
|
|
Permission::SysSieveUserScriptCreate => "sysSieveUserScriptCreate",
|
|
Permission::SysSieveUserScriptUpdate => "sysSieveUserScriptUpdate",
|
|
Permission::SysSieveUserScriptDestroy => "sysSieveUserScriptDestroy",
|
|
Permission::SysSieveUserScriptQuery => "sysSieveUserScriptQuery",
|
|
Permission::SysSpamClassifierGet => "sysSpamClassifierGet",
|
|
Permission::SysSpamClassifierUpdate => "sysSpamClassifierUpdate",
|
|
Permission::SysSpamDnsblServerGet => "sysSpamDnsblServerGet",
|
|
Permission::SysSpamDnsblServerCreate => "sysSpamDnsblServerCreate",
|
|
Permission::SysSpamDnsblServerUpdate => "sysSpamDnsblServerUpdate",
|
|
Permission::SysSpamDnsblServerDestroy => "sysSpamDnsblServerDestroy",
|
|
Permission::SysSpamDnsblServerQuery => "sysSpamDnsblServerQuery",
|
|
Permission::SysSpamDnsblSettingsGet => "sysSpamDnsblSettingsGet",
|
|
Permission::SysSpamDnsblSettingsUpdate => "sysSpamDnsblSettingsUpdate",
|
|
Permission::SysSpamFileExtensionGet => "sysSpamFileExtensionGet",
|
|
Permission::SysSpamFileExtensionCreate => "sysSpamFileExtensionCreate",
|
|
Permission::SysSpamFileExtensionUpdate => "sysSpamFileExtensionUpdate",
|
|
Permission::SysSpamFileExtensionDestroy => "sysSpamFileExtensionDestroy",
|
|
Permission::SysSpamFileExtensionQuery => "sysSpamFileExtensionQuery",
|
|
Permission::SysSpamLlmGet => "sysSpamLlmGet",
|
|
Permission::SysSpamLlmUpdate => "sysSpamLlmUpdate",
|
|
Permission::SysSpamPyzorGet => "sysSpamPyzorGet",
|
|
Permission::SysSpamPyzorUpdate => "sysSpamPyzorUpdate",
|
|
Permission::SysSpamRuleGet => "sysSpamRuleGet",
|
|
Permission::SysSpamRuleCreate => "sysSpamRuleCreate",
|
|
Permission::SysSpamRuleUpdate => "sysSpamRuleUpdate",
|
|
Permission::SysSpamRuleDestroy => "sysSpamRuleDestroy",
|
|
Permission::SysSpamRuleQuery => "sysSpamRuleQuery",
|
|
Permission::SysSpamSettingsGet => "sysSpamSettingsGet",
|
|
Permission::SysSpamSettingsUpdate => "sysSpamSettingsUpdate",
|
|
Permission::SysSpamTagGet => "sysSpamTagGet",
|
|
Permission::SysSpamTagCreate => "sysSpamTagCreate",
|
|
Permission::SysSpamTagUpdate => "sysSpamTagUpdate",
|
|
Permission::SysSpamTagDestroy => "sysSpamTagDestroy",
|
|
Permission::SysSpamTagQuery => "sysSpamTagQuery",
|
|
Permission::SysSpamTrainingSampleGet => "sysSpamTrainingSampleGet",
|
|
Permission::SysSpamTrainingSampleCreate => "sysSpamTrainingSampleCreate",
|
|
Permission::SysSpamTrainingSampleUpdate => "sysSpamTrainingSampleUpdate",
|
|
Permission::SysSpamTrainingSampleDestroy => "sysSpamTrainingSampleDestroy",
|
|
Permission::SysSpamTrainingSampleQuery => "sysSpamTrainingSampleQuery",
|
|
Permission::SysSpfReportSettingsGet => "sysSpfReportSettingsGet",
|
|
Permission::SysSpfReportSettingsUpdate => "sysSpfReportSettingsUpdate",
|
|
Permission::SysStoreLookupGet => "sysStoreLookupGet",
|
|
Permission::SysStoreLookupCreate => "sysStoreLookupCreate",
|
|
Permission::SysStoreLookupUpdate => "sysStoreLookupUpdate",
|
|
Permission::SysStoreLookupDestroy => "sysStoreLookupDestroy",
|
|
Permission::SysStoreLookupQuery => "sysStoreLookupQuery",
|
|
Permission::SysSystemSettingsGet => "sysSystemSettingsGet",
|
|
Permission::SysSystemSettingsUpdate => "sysSystemSettingsUpdate",
|
|
Permission::TaskIndexDocument => "taskIndexDocument",
|
|
Permission::TaskUnindexDocument => "taskUnindexDocument",
|
|
Permission::TaskIndexTrace => "taskIndexTrace",
|
|
Permission::TaskCalendarAlarmEmail => "taskCalendarAlarmEmail",
|
|
Permission::TaskCalendarAlarmNotification => "taskCalendarAlarmNotification",
|
|
Permission::TaskCalendarItipMessage => "taskCalendarItipMessage",
|
|
Permission::TaskMergeThreads => "taskMergeThreads",
|
|
Permission::TaskDmarcReport => "taskDmarcReport",
|
|
Permission::TaskTlsReport => "taskTlsReport",
|
|
Permission::TaskRestoreArchivedItem => "taskRestoreArchivedItem",
|
|
Permission::TaskDestroyAccount => "taskDestroyAccount",
|
|
Permission::TaskAccountMaintenance => "taskAccountMaintenance",
|
|
Permission::TaskTenantMaintenance => "taskTenantMaintenance",
|
|
Permission::TaskStoreMaintenance => "taskStoreMaintenance",
|
|
Permission::TaskSpamFilterMaintenance => "taskSpamFilterMaintenance",
|
|
Permission::TaskAcmeRenewal => "taskAcmeRenewal",
|
|
Permission::TaskDkimManagement => "taskDkimManagement",
|
|
Permission::TaskDnsManagement => "taskDnsManagement",
|
|
Permission::SysTaskGet => "sysTaskGet",
|
|
Permission::SysTaskCreate => "sysTaskCreate",
|
|
Permission::SysTaskUpdate => "sysTaskUpdate",
|
|
Permission::SysTaskDestroy => "sysTaskDestroy",
|
|
Permission::SysTaskQuery => "sysTaskQuery",
|
|
Permission::SysTaskManagerGet => "sysTaskManagerGet",
|
|
Permission::SysTaskManagerUpdate => "sysTaskManagerUpdate",
|
|
Permission::SysTenantGet => "sysTenantGet",
|
|
Permission::SysTenantCreate => "sysTenantCreate",
|
|
Permission::SysTenantUpdate => "sysTenantUpdate",
|
|
Permission::SysTenantDestroy => "sysTenantDestroy",
|
|
Permission::SysTenantQuery => "sysTenantQuery",
|
|
Permission::SysTlsExternalReportGet => "sysTlsExternalReportGet",
|
|
Permission::SysTlsExternalReportCreate => "sysTlsExternalReportCreate",
|
|
Permission::SysTlsExternalReportUpdate => "sysTlsExternalReportUpdate",
|
|
Permission::SysTlsExternalReportDestroy => "sysTlsExternalReportDestroy",
|
|
Permission::SysTlsExternalReportQuery => "sysTlsExternalReportQuery",
|
|
Permission::SysTlsInternalReportGet => "sysTlsInternalReportGet",
|
|
Permission::SysTlsInternalReportCreate => "sysTlsInternalReportCreate",
|
|
Permission::SysTlsInternalReportUpdate => "sysTlsInternalReportUpdate",
|
|
Permission::SysTlsInternalReportDestroy => "sysTlsInternalReportDestroy",
|
|
Permission::SysTlsInternalReportQuery => "sysTlsInternalReportQuery",
|
|
Permission::SysTlsReportSettingsGet => "sysTlsReportSettingsGet",
|
|
Permission::SysTlsReportSettingsUpdate => "sysTlsReportSettingsUpdate",
|
|
Permission::SysTraceGet => "sysTraceGet",
|
|
Permission::SysTraceCreate => "sysTraceCreate",
|
|
Permission::SysTraceUpdate => "sysTraceUpdate",
|
|
Permission::SysTraceDestroy => "sysTraceDestroy",
|
|
Permission::SysTraceQuery => "sysTraceQuery",
|
|
Permission::SysTracerGet => "sysTracerGet",
|
|
Permission::SysTracerCreate => "sysTracerCreate",
|
|
Permission::SysTracerUpdate => "sysTracerUpdate",
|
|
Permission::SysTracerDestroy => "sysTracerDestroy",
|
|
Permission::SysTracerQuery => "sysTracerQuery",
|
|
Permission::SysTracingStoreGet => "sysTracingStoreGet",
|
|
Permission::SysTracingStoreUpdate => "sysTracingStoreUpdate",
|
|
Permission::SysWebDavGet => "sysWebDavGet",
|
|
Permission::SysWebDavUpdate => "sysWebDavUpdate",
|
|
Permission::SysWebHookGet => "sysWebHookGet",
|
|
Permission::SysWebHookCreate => "sysWebHookCreate",
|
|
Permission::SysWebHookUpdate => "sysWebHookUpdate",
|
|
Permission::SysWebHookDestroy => "sysWebHookDestroy",
|
|
Permission::SysWebHookQuery => "sysWebHookQuery",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(Permission::Authenticate),
|
|
1 => Some(Permission::AuthenticateWithAlias),
|
|
2 => Some(Permission::InteractAi),
|
|
3 => Some(Permission::Impersonate),
|
|
4 => Some(Permission::UnlimitedRequests),
|
|
5 => Some(Permission::UnlimitedUploads),
|
|
6 => Some(Permission::FetchAnyBlob),
|
|
7 => Some(Permission::EmailSend),
|
|
8 => Some(Permission::EmailReceive),
|
|
9 => Some(Permission::CalendarAlarmsSend),
|
|
10 => Some(Permission::CalendarSchedulingSend),
|
|
11 => Some(Permission::CalendarSchedulingReceive),
|
|
12 => Some(Permission::JmapPushSubscriptionGet),
|
|
13 => Some(Permission::JmapPushSubscriptionCreate),
|
|
14 => Some(Permission::JmapPushSubscriptionUpdate),
|
|
15 => Some(Permission::JmapPushSubscriptionDestroy),
|
|
16 => Some(Permission::JmapMailboxGet),
|
|
17 => Some(Permission::JmapMailboxChanges),
|
|
18 => Some(Permission::JmapMailboxQuery),
|
|
19 => Some(Permission::JmapMailboxQueryChanges),
|
|
20 => Some(Permission::JmapMailboxCreate),
|
|
21 => Some(Permission::JmapMailboxUpdate),
|
|
22 => Some(Permission::JmapMailboxDestroy),
|
|
23 => Some(Permission::JmapThreadGet),
|
|
24 => Some(Permission::JmapThreadChanges),
|
|
25 => Some(Permission::JmapEmailGet),
|
|
26 => Some(Permission::JmapEmailChanges),
|
|
27 => Some(Permission::JmapEmailQuery),
|
|
28 => Some(Permission::JmapEmailQueryChanges),
|
|
29 => Some(Permission::JmapEmailCreate),
|
|
30 => Some(Permission::JmapEmailUpdate),
|
|
31 => Some(Permission::JmapEmailDestroy),
|
|
32 => Some(Permission::JmapEmailCopy),
|
|
33 => Some(Permission::JmapEmailImport),
|
|
34 => Some(Permission::JmapEmailParse),
|
|
35 => Some(Permission::JmapSearchSnippetGet),
|
|
36 => Some(Permission::JmapIdentityGet),
|
|
37 => Some(Permission::JmapIdentityChanges),
|
|
38 => Some(Permission::JmapIdentityCreate),
|
|
39 => Some(Permission::JmapIdentityUpdate),
|
|
40 => Some(Permission::JmapIdentityDestroy),
|
|
41 => Some(Permission::JmapEmailSubmissionGet),
|
|
42 => Some(Permission::JmapEmailSubmissionChanges),
|
|
43 => Some(Permission::JmapEmailSubmissionQuery),
|
|
44 => Some(Permission::JmapEmailSubmissionQueryChanges),
|
|
45 => Some(Permission::JmapEmailSubmissionCreate),
|
|
46 => Some(Permission::JmapEmailSubmissionUpdate),
|
|
47 => Some(Permission::JmapEmailSubmissionDestroy),
|
|
48 => Some(Permission::JmapVacationResponseGet),
|
|
49 => Some(Permission::JmapVacationResponseCreate),
|
|
50 => Some(Permission::JmapVacationResponseUpdate),
|
|
51 => Some(Permission::JmapVacationResponseDestroy),
|
|
52 => Some(Permission::JmapSieveScriptGet),
|
|
53 => Some(Permission::JmapSieveScriptQuery),
|
|
54 => Some(Permission::JmapSieveScriptValidate),
|
|
55 => Some(Permission::JmapSieveScriptCreate),
|
|
56 => Some(Permission::JmapSieveScriptUpdate),
|
|
57 => Some(Permission::JmapSieveScriptDestroy),
|
|
58 => Some(Permission::JmapPrincipalGet),
|
|
59 => Some(Permission::JmapPrincipalQuery),
|
|
60 => Some(Permission::JmapPrincipalChanges),
|
|
61 => Some(Permission::JmapPrincipalQueryChanges),
|
|
62 => Some(Permission::JmapPrincipalGetAvailability),
|
|
63 => Some(Permission::JmapPrincipalCreate),
|
|
64 => Some(Permission::JmapPrincipalUpdate),
|
|
65 => Some(Permission::JmapPrincipalDestroy),
|
|
66 => Some(Permission::JmapQuotaGet),
|
|
67 => Some(Permission::JmapQuotaChanges),
|
|
68 => Some(Permission::JmapQuotaQuery),
|
|
69 => Some(Permission::JmapQuotaQueryChanges),
|
|
70 => Some(Permission::JmapBlobGet),
|
|
71 => Some(Permission::JmapBlobCopy),
|
|
72 => Some(Permission::JmapBlobLookup),
|
|
73 => Some(Permission::JmapBlobUpload),
|
|
74 => Some(Permission::JmapAddressBookGet),
|
|
75 => Some(Permission::JmapAddressBookChanges),
|
|
76 => Some(Permission::JmapAddressBookCreate),
|
|
77 => Some(Permission::JmapAddressBookUpdate),
|
|
78 => Some(Permission::JmapAddressBookDestroy),
|
|
79 => Some(Permission::JmapContactCardGet),
|
|
80 => Some(Permission::JmapContactCardChanges),
|
|
81 => Some(Permission::JmapContactCardQuery),
|
|
82 => Some(Permission::JmapContactCardQueryChanges),
|
|
83 => Some(Permission::JmapContactCardCreate),
|
|
84 => Some(Permission::JmapContactCardUpdate),
|
|
85 => Some(Permission::JmapContactCardDestroy),
|
|
86 => Some(Permission::JmapContactCardCopy),
|
|
87 => Some(Permission::JmapContactCardParse),
|
|
88 => Some(Permission::JmapFileNodeGet),
|
|
89 => Some(Permission::JmapFileNodeChanges),
|
|
90 => Some(Permission::JmapFileNodeQuery),
|
|
91 => Some(Permission::JmapFileNodeQueryChanges),
|
|
92 => Some(Permission::JmapFileNodeCreate),
|
|
93 => Some(Permission::JmapFileNodeUpdate),
|
|
94 => Some(Permission::JmapFileNodeDestroy),
|
|
659 => Some(Permission::JmapFileNodeCopy),
|
|
95 => Some(Permission::JmapShareNotificationGet),
|
|
96 => Some(Permission::JmapShareNotificationChanges),
|
|
97 => Some(Permission::JmapShareNotificationQuery),
|
|
98 => Some(Permission::JmapShareNotificationQueryChanges),
|
|
99 => Some(Permission::JmapShareNotificationCreate),
|
|
100 => Some(Permission::JmapShareNotificationUpdate),
|
|
101 => Some(Permission::JmapShareNotificationDestroy),
|
|
102 => Some(Permission::JmapCalendarGet),
|
|
103 => Some(Permission::JmapCalendarChanges),
|
|
104 => Some(Permission::JmapCalendarCreate),
|
|
105 => Some(Permission::JmapCalendarUpdate),
|
|
106 => Some(Permission::JmapCalendarDestroy),
|
|
107 => Some(Permission::JmapCalendarEventGet),
|
|
108 => Some(Permission::JmapCalendarEventChanges),
|
|
109 => Some(Permission::JmapCalendarEventQuery),
|
|
110 => Some(Permission::JmapCalendarEventQueryChanges),
|
|
111 => Some(Permission::JmapCalendarEventCreate),
|
|
112 => Some(Permission::JmapCalendarEventUpdate),
|
|
113 => Some(Permission::JmapCalendarEventDestroy),
|
|
114 => Some(Permission::JmapCalendarEventCopy),
|
|
115 => Some(Permission::JmapCalendarEventParse),
|
|
116 => Some(Permission::JmapCalendarEventNotificationGet),
|
|
117 => Some(Permission::JmapCalendarEventNotificationChanges),
|
|
118 => Some(Permission::JmapCalendarEventNotificationQuery),
|
|
119 => Some(Permission::JmapCalendarEventNotificationQueryChanges),
|
|
120 => Some(Permission::JmapCalendarEventNotificationCreate),
|
|
121 => Some(Permission::JmapCalendarEventNotificationUpdate),
|
|
122 => Some(Permission::JmapCalendarEventNotificationDestroy),
|
|
123 => Some(Permission::JmapParticipantIdentityGet),
|
|
124 => Some(Permission::JmapParticipantIdentityChanges),
|
|
125 => Some(Permission::JmapParticipantIdentityCreate),
|
|
126 => Some(Permission::JmapParticipantIdentityUpdate),
|
|
127 => Some(Permission::JmapParticipantIdentityDestroy),
|
|
128 => Some(Permission::JmapCoreEcho),
|
|
129 => Some(Permission::ImapAuthenticate),
|
|
130 => Some(Permission::ImapAclGet),
|
|
131 => Some(Permission::ImapAclSet),
|
|
132 => Some(Permission::ImapMyRights),
|
|
133 => Some(Permission::ImapListRights),
|
|
134 => Some(Permission::ImapAppend),
|
|
135 => Some(Permission::ImapCapability),
|
|
136 => Some(Permission::ImapId),
|
|
137 => Some(Permission::ImapCopy),
|
|
138 => Some(Permission::ImapMove),
|
|
139 => Some(Permission::ImapCreate),
|
|
140 => Some(Permission::ImapDelete),
|
|
141 => Some(Permission::ImapEnable),
|
|
142 => Some(Permission::ImapExpunge),
|
|
143 => Some(Permission::ImapFetch),
|
|
144 => Some(Permission::ImapIdle),
|
|
145 => Some(Permission::ImapList),
|
|
146 => Some(Permission::ImapLsub),
|
|
147 => Some(Permission::ImapNamespace),
|
|
148 => Some(Permission::ImapRename),
|
|
149 => Some(Permission::ImapSearch),
|
|
150 => Some(Permission::ImapSort),
|
|
151 => Some(Permission::ImapSelect),
|
|
152 => Some(Permission::ImapExamine),
|
|
153 => Some(Permission::ImapStatus),
|
|
154 => Some(Permission::ImapStore),
|
|
155 => Some(Permission::ImapSubscribe),
|
|
156 => Some(Permission::ImapThread),
|
|
157 => Some(Permission::Pop3Authenticate),
|
|
158 => Some(Permission::Pop3List),
|
|
159 => Some(Permission::Pop3Uidl),
|
|
160 => Some(Permission::Pop3Stat),
|
|
161 => Some(Permission::Pop3Retr),
|
|
162 => Some(Permission::Pop3Dele),
|
|
163 => Some(Permission::SieveAuthenticate),
|
|
164 => Some(Permission::SieveListScripts),
|
|
165 => Some(Permission::SieveSetActive),
|
|
166 => Some(Permission::SieveGetScript),
|
|
167 => Some(Permission::SievePutScript),
|
|
168 => Some(Permission::SieveDeleteScript),
|
|
169 => Some(Permission::SieveRenameScript),
|
|
170 => Some(Permission::SieveCheckScript),
|
|
171 => Some(Permission::SieveHaveSpace),
|
|
172 => Some(Permission::DavSyncCollection),
|
|
173 => Some(Permission::DavExpandProperty),
|
|
174 => Some(Permission::DavPrincipalAcl),
|
|
175 => Some(Permission::DavPrincipalList),
|
|
176 => Some(Permission::DavPrincipalMatch),
|
|
177 => Some(Permission::DavPrincipalSearch),
|
|
178 => Some(Permission::DavPrincipalSearchPropSet),
|
|
179 => Some(Permission::DavFilePropFind),
|
|
180 => Some(Permission::DavFilePropPatch),
|
|
181 => Some(Permission::DavFileGet),
|
|
182 => Some(Permission::DavFileMkCol),
|
|
183 => Some(Permission::DavFileDelete),
|
|
184 => Some(Permission::DavFilePut),
|
|
185 => Some(Permission::DavFileCopy),
|
|
186 => Some(Permission::DavFileMove),
|
|
187 => Some(Permission::DavFileLock),
|
|
188 => Some(Permission::DavFileAcl),
|
|
189 => Some(Permission::DavCardPropFind),
|
|
190 => Some(Permission::DavCardPropPatch),
|
|
191 => Some(Permission::DavCardGet),
|
|
192 => Some(Permission::DavCardMkCol),
|
|
193 => Some(Permission::DavCardDelete),
|
|
194 => Some(Permission::DavCardPut),
|
|
195 => Some(Permission::DavCardCopy),
|
|
196 => Some(Permission::DavCardMove),
|
|
197 => Some(Permission::DavCardLock),
|
|
198 => Some(Permission::DavCardAcl),
|
|
199 => Some(Permission::DavCardQuery),
|
|
200 => Some(Permission::DavCardMultiGet),
|
|
201 => Some(Permission::DavCalPropFind),
|
|
202 => Some(Permission::DavCalPropPatch),
|
|
203 => Some(Permission::DavCalGet),
|
|
204 => Some(Permission::DavCalMkCol),
|
|
205 => Some(Permission::DavCalDelete),
|
|
206 => Some(Permission::DavCalPut),
|
|
207 => Some(Permission::DavCalCopy),
|
|
208 => Some(Permission::DavCalMove),
|
|
209 => Some(Permission::DavCalLock),
|
|
210 => Some(Permission::DavCalAcl),
|
|
211 => Some(Permission::DavCalQuery),
|
|
212 => Some(Permission::DavCalMultiGet),
|
|
213 => Some(Permission::DavCalFreeBusyQuery),
|
|
214 => Some(Permission::OAuthClientRegistration),
|
|
215 => Some(Permission::OAuthClientOverride),
|
|
216 => Some(Permission::LiveTracing),
|
|
217 => Some(Permission::LiveMetrics),
|
|
218 => Some(Permission::LiveDeliveryTest),
|
|
660 => Some(Permission::ScimAccess),
|
|
219 => Some(Permission::SysAccountGet),
|
|
220 => Some(Permission::SysAccountCreate),
|
|
221 => Some(Permission::SysAccountUpdate),
|
|
222 => Some(Permission::SysAccountDestroy),
|
|
223 => Some(Permission::SysAccountQuery),
|
|
224 => Some(Permission::SysAccountPasswordGet),
|
|
225 => Some(Permission::SysAccountPasswordUpdate),
|
|
226 => Some(Permission::SysAccountSettingsGet),
|
|
227 => Some(Permission::SysAccountSettingsUpdate),
|
|
228 => Some(Permission::SysAcmeProviderGet),
|
|
229 => Some(Permission::SysAcmeProviderCreate),
|
|
230 => Some(Permission::SysAcmeProviderUpdate),
|
|
231 => Some(Permission::SysAcmeProviderDestroy),
|
|
232 => Some(Permission::SysAcmeProviderQuery),
|
|
233 => Some(Permission::ActionReloadSettings),
|
|
234 => Some(Permission::ActionReloadTlsCertificates),
|
|
235 => Some(Permission::ActionReloadLookupStores),
|
|
236 => Some(Permission::ActionReloadBlockedIps),
|
|
237 => Some(Permission::ActionUpdateApps),
|
|
238 => Some(Permission::ActionTroubleshootDmarc),
|
|
239 => Some(Permission::ActionClassifySpam),
|
|
240 => Some(Permission::ActionInvalidateCaches),
|
|
241 => Some(Permission::ActionInvalidateNegativeCaches),
|
|
242 => Some(Permission::ActionPauseMtaQueue),
|
|
243 => Some(Permission::ActionResumeMtaQueue),
|
|
244 => Some(Permission::SysActionGet),
|
|
245 => Some(Permission::SysActionCreate),
|
|
246 => Some(Permission::SysActionUpdate),
|
|
247 => Some(Permission::SysActionDestroy),
|
|
248 => Some(Permission::SysActionQuery),
|
|
249 => Some(Permission::SysAddressBookGet),
|
|
250 => Some(Permission::SysAddressBookUpdate),
|
|
251 => Some(Permission::SysAiModelGet),
|
|
252 => Some(Permission::SysAiModelCreate),
|
|
253 => Some(Permission::SysAiModelUpdate),
|
|
254 => Some(Permission::SysAiModelDestroy),
|
|
255 => Some(Permission::SysAiModelQuery),
|
|
256 => Some(Permission::SysAlertGet),
|
|
257 => Some(Permission::SysAlertCreate),
|
|
258 => Some(Permission::SysAlertUpdate),
|
|
259 => Some(Permission::SysAlertDestroy),
|
|
260 => Some(Permission::SysAlertQuery),
|
|
261 => Some(Permission::SysAllowedIpGet),
|
|
262 => Some(Permission::SysAllowedIpCreate),
|
|
263 => Some(Permission::SysAllowedIpUpdate),
|
|
264 => Some(Permission::SysAllowedIpDestroy),
|
|
265 => Some(Permission::SysAllowedIpQuery),
|
|
266 => Some(Permission::SysApiKeyGet),
|
|
267 => Some(Permission::SysApiKeyCreate),
|
|
268 => Some(Permission::SysApiKeyUpdate),
|
|
269 => Some(Permission::SysApiKeyDestroy),
|
|
270 => Some(Permission::SysApiKeyQuery),
|
|
271 => Some(Permission::SysAppPasswordGet),
|
|
272 => Some(Permission::SysAppPasswordCreate),
|
|
273 => Some(Permission::SysAppPasswordUpdate),
|
|
274 => Some(Permission::SysAppPasswordDestroy),
|
|
275 => Some(Permission::SysAppPasswordQuery),
|
|
276 => Some(Permission::SysApplicationGet),
|
|
277 => Some(Permission::SysApplicationCreate),
|
|
278 => Some(Permission::SysApplicationUpdate),
|
|
279 => Some(Permission::SysApplicationDestroy),
|
|
280 => Some(Permission::SysApplicationQuery),
|
|
281 => Some(Permission::SysArchivedItemGet),
|
|
282 => Some(Permission::SysArchivedItemCreate),
|
|
283 => Some(Permission::SysArchivedItemUpdate),
|
|
284 => Some(Permission::SysArchivedItemDestroy),
|
|
285 => Some(Permission::SysArchivedItemQuery),
|
|
286 => Some(Permission::SysArfExternalReportGet),
|
|
287 => Some(Permission::SysArfExternalReportCreate),
|
|
288 => Some(Permission::SysArfExternalReportUpdate),
|
|
289 => Some(Permission::SysArfExternalReportDestroy),
|
|
290 => Some(Permission::SysArfExternalReportQuery),
|
|
291 => Some(Permission::SysAsnGet),
|
|
292 => Some(Permission::SysAsnUpdate),
|
|
293 => Some(Permission::SysAuthenticationGet),
|
|
294 => Some(Permission::SysAuthenticationUpdate),
|
|
295 => Some(Permission::SysBlobStoreGet),
|
|
296 => Some(Permission::SysBlobStoreUpdate),
|
|
297 => Some(Permission::SysBlockedIpGet),
|
|
298 => Some(Permission::SysBlockedIpCreate),
|
|
299 => Some(Permission::SysBlockedIpUpdate),
|
|
300 => Some(Permission::SysBlockedIpDestroy),
|
|
301 => Some(Permission::SysBlockedIpQuery),
|
|
302 => Some(Permission::SysBootstrapGet),
|
|
303 => Some(Permission::SysBootstrapUpdate),
|
|
304 => Some(Permission::SysCacheGet),
|
|
305 => Some(Permission::SysCacheUpdate),
|
|
306 => Some(Permission::SysCalendarGet),
|
|
307 => Some(Permission::SysCalendarUpdate),
|
|
308 => Some(Permission::SysCalendarAlarmGet),
|
|
309 => Some(Permission::SysCalendarAlarmUpdate),
|
|
310 => Some(Permission::SysCalendarSchedulingGet),
|
|
311 => Some(Permission::SysCalendarSchedulingUpdate),
|
|
312 => Some(Permission::SysCertificateGet),
|
|
313 => Some(Permission::SysCertificateCreate),
|
|
314 => Some(Permission::SysCertificateUpdate),
|
|
315 => Some(Permission::SysCertificateDestroy),
|
|
316 => Some(Permission::SysCertificateQuery),
|
|
317 => Some(Permission::SysClusterNodeGet),
|
|
318 => Some(Permission::SysClusterNodeCreate),
|
|
319 => Some(Permission::SysClusterNodeUpdate),
|
|
320 => Some(Permission::SysClusterNodeDestroy),
|
|
321 => Some(Permission::SysClusterNodeQuery),
|
|
322 => Some(Permission::SysClusterRoleGet),
|
|
323 => Some(Permission::SysClusterRoleCreate),
|
|
324 => Some(Permission::SysClusterRoleUpdate),
|
|
325 => Some(Permission::SysClusterRoleDestroy),
|
|
326 => Some(Permission::SysClusterRoleQuery),
|
|
327 => Some(Permission::SysCoordinatorGet),
|
|
328 => Some(Permission::SysCoordinatorUpdate),
|
|
329 => Some(Permission::SysDataRetentionGet),
|
|
330 => Some(Permission::SysDataRetentionUpdate),
|
|
331 => Some(Permission::SysDataStoreGet),
|
|
332 => Some(Permission::SysDataStoreUpdate),
|
|
333 => Some(Permission::SysDirectoryGet),
|
|
334 => Some(Permission::SysDirectoryCreate),
|
|
335 => Some(Permission::SysDirectoryUpdate),
|
|
336 => Some(Permission::SysDirectoryDestroy),
|
|
337 => Some(Permission::SysDirectoryQuery),
|
|
338 => Some(Permission::SysDkimReportSettingsGet),
|
|
339 => Some(Permission::SysDkimReportSettingsUpdate),
|
|
340 => Some(Permission::SysDkimSignatureGet),
|
|
341 => Some(Permission::SysDkimSignatureCreate),
|
|
342 => Some(Permission::SysDkimSignatureUpdate),
|
|
343 => Some(Permission::SysDkimSignatureDestroy),
|
|
344 => Some(Permission::SysDkimSignatureQuery),
|
|
345 => Some(Permission::SysDmarcExternalReportGet),
|
|
346 => Some(Permission::SysDmarcExternalReportCreate),
|
|
347 => Some(Permission::SysDmarcExternalReportUpdate),
|
|
348 => Some(Permission::SysDmarcExternalReportDestroy),
|
|
349 => Some(Permission::SysDmarcExternalReportQuery),
|
|
350 => Some(Permission::SysDmarcInternalReportGet),
|
|
351 => Some(Permission::SysDmarcInternalReportCreate),
|
|
352 => Some(Permission::SysDmarcInternalReportUpdate),
|
|
353 => Some(Permission::SysDmarcInternalReportDestroy),
|
|
354 => Some(Permission::SysDmarcInternalReportQuery),
|
|
355 => Some(Permission::SysDmarcReportSettingsGet),
|
|
356 => Some(Permission::SysDmarcReportSettingsUpdate),
|
|
357 => Some(Permission::SysDnsResolverGet),
|
|
358 => Some(Permission::SysDnsResolverUpdate),
|
|
359 => Some(Permission::SysDnsServerGet),
|
|
360 => Some(Permission::SysDnsServerCreate),
|
|
361 => Some(Permission::SysDnsServerUpdate),
|
|
362 => Some(Permission::SysDnsServerDestroy),
|
|
363 => Some(Permission::SysDnsServerQuery),
|
|
364 => Some(Permission::SysDomainGet),
|
|
365 => Some(Permission::SysDomainCreate),
|
|
366 => Some(Permission::SysDomainUpdate),
|
|
367 => Some(Permission::SysDomainDestroy),
|
|
368 => Some(Permission::SysDomainQuery),
|
|
369 => Some(Permission::SysDsnReportSettingsGet),
|
|
370 => Some(Permission::SysDsnReportSettingsUpdate),
|
|
371 => Some(Permission::SysEmailGet),
|
|
372 => Some(Permission::SysEmailUpdate),
|
|
373 => Some(Permission::SysEnterpriseGet),
|
|
374 => Some(Permission::SysEnterpriseUpdate),
|
|
375 => Some(Permission::SysEventTracingLevelGet),
|
|
376 => Some(Permission::SysEventTracingLevelCreate),
|
|
377 => Some(Permission::SysEventTracingLevelUpdate),
|
|
378 => Some(Permission::SysEventTracingLevelDestroy),
|
|
379 => Some(Permission::SysEventTracingLevelQuery),
|
|
380 => Some(Permission::SysFileStorageGet),
|
|
381 => Some(Permission::SysFileStorageUpdate),
|
|
382 => Some(Permission::SysHttpGet),
|
|
383 => Some(Permission::SysHttpUpdate),
|
|
384 => Some(Permission::SysHttpFormGet),
|
|
385 => Some(Permission::SysHttpFormUpdate),
|
|
386 => Some(Permission::SysHttpLookupGet),
|
|
387 => Some(Permission::SysHttpLookupCreate),
|
|
388 => Some(Permission::SysHttpLookupUpdate),
|
|
389 => Some(Permission::SysHttpLookupDestroy),
|
|
390 => Some(Permission::SysHttpLookupQuery),
|
|
391 => Some(Permission::SysImapGet),
|
|
392 => Some(Permission::SysImapUpdate),
|
|
393 => Some(Permission::SysInMemoryStoreGet),
|
|
394 => Some(Permission::SysInMemoryStoreUpdate),
|
|
395 => Some(Permission::SysJmapGet),
|
|
396 => Some(Permission::SysJmapUpdate),
|
|
397 => Some(Permission::SysLogGet),
|
|
398 => Some(Permission::SysLogCreate),
|
|
399 => Some(Permission::SysLogUpdate),
|
|
400 => Some(Permission::SysLogDestroy),
|
|
401 => Some(Permission::SysLogQuery),
|
|
402 => Some(Permission::SysMailingListGet),
|
|
403 => Some(Permission::SysMailingListCreate),
|
|
404 => Some(Permission::SysMailingListUpdate),
|
|
405 => Some(Permission::SysMailingListDestroy),
|
|
406 => Some(Permission::SysMailingListQuery),
|
|
407 => Some(Permission::SysMaskedEmailGet),
|
|
408 => Some(Permission::SysMaskedEmailCreate),
|
|
409 => Some(Permission::SysMaskedEmailUpdate),
|
|
410 => Some(Permission::SysMaskedEmailDestroy),
|
|
411 => Some(Permission::SysMaskedEmailQuery),
|
|
412 => Some(Permission::SysMemoryLookupKeyGet),
|
|
413 => Some(Permission::SysMemoryLookupKeyCreate),
|
|
414 => Some(Permission::SysMemoryLookupKeyUpdate),
|
|
415 => Some(Permission::SysMemoryLookupKeyDestroy),
|
|
416 => Some(Permission::SysMemoryLookupKeyQuery),
|
|
417 => Some(Permission::SysMemoryLookupKeyValueGet),
|
|
418 => Some(Permission::SysMemoryLookupKeyValueCreate),
|
|
419 => Some(Permission::SysMemoryLookupKeyValueUpdate),
|
|
420 => Some(Permission::SysMemoryLookupKeyValueDestroy),
|
|
421 => Some(Permission::SysMemoryLookupKeyValueQuery),
|
|
422 => Some(Permission::SysMetricGet),
|
|
423 => Some(Permission::SysMetricCreate),
|
|
424 => Some(Permission::SysMetricUpdate),
|
|
425 => Some(Permission::SysMetricDestroy),
|
|
426 => Some(Permission::SysMetricQuery),
|
|
427 => Some(Permission::SysMetricsGet),
|
|
428 => Some(Permission::SysMetricsUpdate),
|
|
429 => Some(Permission::SysMetricsStoreGet),
|
|
430 => Some(Permission::SysMetricsStoreUpdate),
|
|
431 => Some(Permission::SysMtaConnectionStrategyGet),
|
|
432 => Some(Permission::SysMtaConnectionStrategyCreate),
|
|
433 => Some(Permission::SysMtaConnectionStrategyUpdate),
|
|
434 => Some(Permission::SysMtaConnectionStrategyDestroy),
|
|
435 => Some(Permission::SysMtaConnectionStrategyQuery),
|
|
436 => Some(Permission::SysMtaDeliveryScheduleGet),
|
|
437 => Some(Permission::SysMtaDeliveryScheduleCreate),
|
|
438 => Some(Permission::SysMtaDeliveryScheduleUpdate),
|
|
439 => Some(Permission::SysMtaDeliveryScheduleDestroy),
|
|
440 => Some(Permission::SysMtaDeliveryScheduleQuery),
|
|
441 => Some(Permission::SysMtaExtensionsGet),
|
|
442 => Some(Permission::SysMtaExtensionsUpdate),
|
|
443 => Some(Permission::SysMtaHookGet),
|
|
444 => Some(Permission::SysMtaHookCreate),
|
|
445 => Some(Permission::SysMtaHookUpdate),
|
|
446 => Some(Permission::SysMtaHookDestroy),
|
|
447 => Some(Permission::SysMtaHookQuery),
|
|
448 => Some(Permission::SysMtaInboundSessionGet),
|
|
449 => Some(Permission::SysMtaInboundSessionUpdate),
|
|
450 => Some(Permission::SysMtaInboundThrottleGet),
|
|
451 => Some(Permission::SysMtaInboundThrottleCreate),
|
|
452 => Some(Permission::SysMtaInboundThrottleUpdate),
|
|
453 => Some(Permission::SysMtaInboundThrottleDestroy),
|
|
454 => Some(Permission::SysMtaInboundThrottleQuery),
|
|
455 => Some(Permission::SysMtaMilterGet),
|
|
456 => Some(Permission::SysMtaMilterCreate),
|
|
457 => Some(Permission::SysMtaMilterUpdate),
|
|
458 => Some(Permission::SysMtaMilterDestroy),
|
|
459 => Some(Permission::SysMtaMilterQuery),
|
|
460 => Some(Permission::SysMtaOutboundStrategyGet),
|
|
461 => Some(Permission::SysMtaOutboundStrategyUpdate),
|
|
462 => Some(Permission::SysMtaOutboundThrottleGet),
|
|
463 => Some(Permission::SysMtaOutboundThrottleCreate),
|
|
464 => Some(Permission::SysMtaOutboundThrottleUpdate),
|
|
465 => Some(Permission::SysMtaOutboundThrottleDestroy),
|
|
466 => Some(Permission::SysMtaOutboundThrottleQuery),
|
|
467 => Some(Permission::SysMtaQueueQuotaGet),
|
|
468 => Some(Permission::SysMtaQueueQuotaCreate),
|
|
469 => Some(Permission::SysMtaQueueQuotaUpdate),
|
|
470 => Some(Permission::SysMtaQueueQuotaDestroy),
|
|
471 => Some(Permission::SysMtaQueueQuotaQuery),
|
|
472 => Some(Permission::SysMtaRouteGet),
|
|
473 => Some(Permission::SysMtaRouteCreate),
|
|
474 => Some(Permission::SysMtaRouteUpdate),
|
|
475 => Some(Permission::SysMtaRouteDestroy),
|
|
476 => Some(Permission::SysMtaRouteQuery),
|
|
477 => Some(Permission::SysMtaStageAuthGet),
|
|
478 => Some(Permission::SysMtaStageAuthUpdate),
|
|
479 => Some(Permission::SysMtaStageConnectGet),
|
|
480 => Some(Permission::SysMtaStageConnectUpdate),
|
|
481 => Some(Permission::SysMtaStageDataGet),
|
|
482 => Some(Permission::SysMtaStageDataUpdate),
|
|
483 => Some(Permission::SysMtaStageEhloGet),
|
|
484 => Some(Permission::SysMtaStageEhloUpdate),
|
|
485 => Some(Permission::SysMtaStageMailGet),
|
|
486 => Some(Permission::SysMtaStageMailUpdate),
|
|
487 => Some(Permission::SysMtaStageRcptGet),
|
|
488 => Some(Permission::SysMtaStageRcptUpdate),
|
|
489 => Some(Permission::SysMtaStsGet),
|
|
490 => Some(Permission::SysMtaStsUpdate),
|
|
491 => Some(Permission::SysMtaTlsStrategyGet),
|
|
492 => Some(Permission::SysMtaTlsStrategyCreate),
|
|
493 => Some(Permission::SysMtaTlsStrategyUpdate),
|
|
494 => Some(Permission::SysMtaTlsStrategyDestroy),
|
|
495 => Some(Permission::SysMtaTlsStrategyQuery),
|
|
496 => Some(Permission::SysMtaVirtualQueueGet),
|
|
497 => Some(Permission::SysMtaVirtualQueueCreate),
|
|
498 => Some(Permission::SysMtaVirtualQueueUpdate),
|
|
499 => Some(Permission::SysMtaVirtualQueueDestroy),
|
|
500 => Some(Permission::SysMtaVirtualQueueQuery),
|
|
501 => Some(Permission::SysNetworkListenerGet),
|
|
502 => Some(Permission::SysNetworkListenerCreate),
|
|
503 => Some(Permission::SysNetworkListenerUpdate),
|
|
504 => Some(Permission::SysNetworkListenerDestroy),
|
|
505 => Some(Permission::SysNetworkListenerQuery),
|
|
506 => Some(Permission::SysOAuthClientGet),
|
|
507 => Some(Permission::SysOAuthClientCreate),
|
|
508 => Some(Permission::SysOAuthClientUpdate),
|
|
509 => Some(Permission::SysOAuthClientDestroy),
|
|
510 => Some(Permission::SysOAuthClientQuery),
|
|
511 => Some(Permission::SysOidcProviderGet),
|
|
512 => Some(Permission::SysOidcProviderUpdate),
|
|
513 => Some(Permission::SysPublicKeyGet),
|
|
514 => Some(Permission::SysPublicKeyCreate),
|
|
515 => Some(Permission::SysPublicKeyUpdate),
|
|
516 => Some(Permission::SysPublicKeyDestroy),
|
|
517 => Some(Permission::SysPublicKeyQuery),
|
|
518 => Some(Permission::SysQueuedMessageGet),
|
|
519 => Some(Permission::SysQueuedMessageCreate),
|
|
520 => Some(Permission::SysQueuedMessageUpdate),
|
|
521 => Some(Permission::SysQueuedMessageDestroy),
|
|
522 => Some(Permission::SysQueuedMessageQuery),
|
|
523 => Some(Permission::SysReportSettingsGet),
|
|
524 => Some(Permission::SysReportSettingsUpdate),
|
|
525 => Some(Permission::SysRoleGet),
|
|
526 => Some(Permission::SysRoleCreate),
|
|
527 => Some(Permission::SysRoleUpdate),
|
|
528 => Some(Permission::SysRoleDestroy),
|
|
529 => Some(Permission::SysRoleQuery),
|
|
530 => Some(Permission::SysSearchGet),
|
|
531 => Some(Permission::SysSearchUpdate),
|
|
532 => Some(Permission::SysSearchStoreGet),
|
|
533 => Some(Permission::SysSearchStoreUpdate),
|
|
534 => Some(Permission::SysSecurityGet),
|
|
535 => Some(Permission::SysSecurityUpdate),
|
|
536 => Some(Permission::SysSenderAuthGet),
|
|
537 => Some(Permission::SysSenderAuthUpdate),
|
|
538 => Some(Permission::SysSharingGet),
|
|
539 => Some(Permission::SysSharingUpdate),
|
|
540 => Some(Permission::SysSieveSystemInterpreterGet),
|
|
541 => Some(Permission::SysSieveSystemInterpreterUpdate),
|
|
542 => Some(Permission::SysSieveSystemScriptGet),
|
|
543 => Some(Permission::SysSieveSystemScriptCreate),
|
|
544 => Some(Permission::SysSieveSystemScriptUpdate),
|
|
545 => Some(Permission::SysSieveSystemScriptDestroy),
|
|
546 => Some(Permission::SysSieveSystemScriptQuery),
|
|
547 => Some(Permission::SysSieveUserInterpreterGet),
|
|
548 => Some(Permission::SysSieveUserInterpreterUpdate),
|
|
549 => Some(Permission::SysSieveUserScriptGet),
|
|
550 => Some(Permission::SysSieveUserScriptCreate),
|
|
551 => Some(Permission::SysSieveUserScriptUpdate),
|
|
552 => Some(Permission::SysSieveUserScriptDestroy),
|
|
553 => Some(Permission::SysSieveUserScriptQuery),
|
|
554 => Some(Permission::SysSpamClassifierGet),
|
|
555 => Some(Permission::SysSpamClassifierUpdate),
|
|
556 => Some(Permission::SysSpamDnsblServerGet),
|
|
557 => Some(Permission::SysSpamDnsblServerCreate),
|
|
558 => Some(Permission::SysSpamDnsblServerUpdate),
|
|
559 => Some(Permission::SysSpamDnsblServerDestroy),
|
|
560 => Some(Permission::SysSpamDnsblServerQuery),
|
|
561 => Some(Permission::SysSpamDnsblSettingsGet),
|
|
562 => Some(Permission::SysSpamDnsblSettingsUpdate),
|
|
563 => Some(Permission::SysSpamFileExtensionGet),
|
|
564 => Some(Permission::SysSpamFileExtensionCreate),
|
|
565 => Some(Permission::SysSpamFileExtensionUpdate),
|
|
566 => Some(Permission::SysSpamFileExtensionDestroy),
|
|
567 => Some(Permission::SysSpamFileExtensionQuery),
|
|
568 => Some(Permission::SysSpamLlmGet),
|
|
569 => Some(Permission::SysSpamLlmUpdate),
|
|
570 => Some(Permission::SysSpamPyzorGet),
|
|
571 => Some(Permission::SysSpamPyzorUpdate),
|
|
572 => Some(Permission::SysSpamRuleGet),
|
|
573 => Some(Permission::SysSpamRuleCreate),
|
|
574 => Some(Permission::SysSpamRuleUpdate),
|
|
575 => Some(Permission::SysSpamRuleDestroy),
|
|
576 => Some(Permission::SysSpamRuleQuery),
|
|
577 => Some(Permission::SysSpamSettingsGet),
|
|
578 => Some(Permission::SysSpamSettingsUpdate),
|
|
579 => Some(Permission::SysSpamTagGet),
|
|
580 => Some(Permission::SysSpamTagCreate),
|
|
581 => Some(Permission::SysSpamTagUpdate),
|
|
582 => Some(Permission::SysSpamTagDestroy),
|
|
583 => Some(Permission::SysSpamTagQuery),
|
|
584 => Some(Permission::SysSpamTrainingSampleGet),
|
|
585 => Some(Permission::SysSpamTrainingSampleCreate),
|
|
586 => Some(Permission::SysSpamTrainingSampleUpdate),
|
|
587 => Some(Permission::SysSpamTrainingSampleDestroy),
|
|
588 => Some(Permission::SysSpamTrainingSampleQuery),
|
|
589 => Some(Permission::SysSpfReportSettingsGet),
|
|
590 => Some(Permission::SysSpfReportSettingsUpdate),
|
|
591 => Some(Permission::SysStoreLookupGet),
|
|
592 => Some(Permission::SysStoreLookupCreate),
|
|
593 => Some(Permission::SysStoreLookupUpdate),
|
|
594 => Some(Permission::SysStoreLookupDestroy),
|
|
595 => Some(Permission::SysStoreLookupQuery),
|
|
596 => Some(Permission::SysSystemSettingsGet),
|
|
597 => Some(Permission::SysSystemSettingsUpdate),
|
|
598 => Some(Permission::TaskIndexDocument),
|
|
599 => Some(Permission::TaskUnindexDocument),
|
|
600 => Some(Permission::TaskIndexTrace),
|
|
601 => Some(Permission::TaskCalendarAlarmEmail),
|
|
602 => Some(Permission::TaskCalendarAlarmNotification),
|
|
603 => Some(Permission::TaskCalendarItipMessage),
|
|
604 => Some(Permission::TaskMergeThreads),
|
|
605 => Some(Permission::TaskDmarcReport),
|
|
606 => Some(Permission::TaskTlsReport),
|
|
607 => Some(Permission::TaskRestoreArchivedItem),
|
|
608 => Some(Permission::TaskDestroyAccount),
|
|
609 => Some(Permission::TaskAccountMaintenance),
|
|
610 => Some(Permission::TaskTenantMaintenance),
|
|
611 => Some(Permission::TaskStoreMaintenance),
|
|
612 => Some(Permission::TaskSpamFilterMaintenance),
|
|
613 => Some(Permission::TaskAcmeRenewal),
|
|
614 => Some(Permission::TaskDkimManagement),
|
|
615 => Some(Permission::TaskDnsManagement),
|
|
616 => Some(Permission::SysTaskGet),
|
|
617 => Some(Permission::SysTaskCreate),
|
|
618 => Some(Permission::SysTaskUpdate),
|
|
619 => Some(Permission::SysTaskDestroy),
|
|
620 => Some(Permission::SysTaskQuery),
|
|
621 => Some(Permission::SysTaskManagerGet),
|
|
622 => Some(Permission::SysTaskManagerUpdate),
|
|
623 => Some(Permission::SysTenantGet),
|
|
624 => Some(Permission::SysTenantCreate),
|
|
625 => Some(Permission::SysTenantUpdate),
|
|
626 => Some(Permission::SysTenantDestroy),
|
|
627 => Some(Permission::SysTenantQuery),
|
|
628 => Some(Permission::SysTlsExternalReportGet),
|
|
629 => Some(Permission::SysTlsExternalReportCreate),
|
|
630 => Some(Permission::SysTlsExternalReportUpdate),
|
|
631 => Some(Permission::SysTlsExternalReportDestroy),
|
|
632 => Some(Permission::SysTlsExternalReportQuery),
|
|
633 => Some(Permission::SysTlsInternalReportGet),
|
|
634 => Some(Permission::SysTlsInternalReportCreate),
|
|
635 => Some(Permission::SysTlsInternalReportUpdate),
|
|
636 => Some(Permission::SysTlsInternalReportDestroy),
|
|
637 => Some(Permission::SysTlsInternalReportQuery),
|
|
638 => Some(Permission::SysTlsReportSettingsGet),
|
|
639 => Some(Permission::SysTlsReportSettingsUpdate),
|
|
640 => Some(Permission::SysTraceGet),
|
|
641 => Some(Permission::SysTraceCreate),
|
|
642 => Some(Permission::SysTraceUpdate),
|
|
643 => Some(Permission::SysTraceDestroy),
|
|
644 => Some(Permission::SysTraceQuery),
|
|
645 => Some(Permission::SysTracerGet),
|
|
646 => Some(Permission::SysTracerCreate),
|
|
647 => Some(Permission::SysTracerUpdate),
|
|
648 => Some(Permission::SysTracerDestroy),
|
|
649 => Some(Permission::SysTracerQuery),
|
|
650 => Some(Permission::SysTracingStoreGet),
|
|
651 => Some(Permission::SysTracingStoreUpdate),
|
|
652 => Some(Permission::SysWebDavGet),
|
|
653 => Some(Permission::SysWebDavUpdate),
|
|
654 => Some(Permission::SysWebHookGet),
|
|
655 => Some(Permission::SysWebHookCreate),
|
|
656 => Some(Permission::SysWebHookUpdate),
|
|
657 => Some(Permission::SysWebHookDestroy),
|
|
658 => Some(Permission::SysWebHookQuery),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 661;
|
|
}
|
|
|
|
impl serde::Serialize for Permission {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for Permission {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for PermissionsType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Inherit" => PermissionsType::Inherit,
|
|
b"Merge" => PermissionsType::Merge,
|
|
b"Replace" => PermissionsType::Replace,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
PermissionsType::Inherit => "Inherit",
|
|
PermissionsType::Merge => "Merge",
|
|
PermissionsType::Replace => "Replace",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(PermissionsType::Inherit),
|
|
1 => Some(PermissionsType::Merge),
|
|
2 => Some(PermissionsType::Replace),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for PermissionsType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for PermissionsType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for PolicyEnforcement {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"enforce" => PolicyEnforcement::Enforce,
|
|
b"testing" => PolicyEnforcement::Testing,
|
|
b"disable" => PolicyEnforcement::Disable,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
PolicyEnforcement::Enforce => "enforce",
|
|
PolicyEnforcement::Testing => "testing",
|
|
PolicyEnforcement::Disable => "disable",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(PolicyEnforcement::Enforce),
|
|
1 => Some(PolicyEnforcement::Testing),
|
|
2 => Some(PolicyEnforcement::Disable),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for PolicyEnforcement {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for PolicyEnforcement {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for PostgreSqlRecyclingMethod {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"fast" => PostgreSqlRecyclingMethod::Fast,
|
|
b"verified" => PostgreSqlRecyclingMethod::Verified,
|
|
b"clean" => PostgreSqlRecyclingMethod::Clean,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
PostgreSqlRecyclingMethod::Fast => "fast",
|
|
PostgreSqlRecyclingMethod::Verified => "verified",
|
|
PostgreSqlRecyclingMethod::Clean => "clean",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(PostgreSqlRecyclingMethod::Fast),
|
|
1 => Some(PostgreSqlRecyclingMethod::Verified),
|
|
2 => Some(PostgreSqlRecyclingMethod::Clean),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for PostgreSqlRecyclingMethod {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for PostgreSqlRecyclingMethod {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ProviderInfo {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"providerName" => ProviderInfo::ProviderName,
|
|
b"providerShortName" => ProviderInfo::ProviderShortName,
|
|
b"userDocumentation" => ProviderInfo::UserDocumentation,
|
|
b"developerDocumentation" => ProviderInfo::DeveloperDocumentation,
|
|
b"contactUri" => ProviderInfo::ContactUri,
|
|
b"logoUrl" => ProviderInfo::LogoUrl,
|
|
b"logoWidth" => ProviderInfo::LogoWidth,
|
|
b"logoHeight" => ProviderInfo::LogoHeight,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ProviderInfo::ProviderName => "providerName",
|
|
ProviderInfo::ProviderShortName => "providerShortName",
|
|
ProviderInfo::UserDocumentation => "userDocumentation",
|
|
ProviderInfo::DeveloperDocumentation => "developerDocumentation",
|
|
ProviderInfo::ContactUri => "contactUri",
|
|
ProviderInfo::LogoUrl => "logoUrl",
|
|
ProviderInfo::LogoWidth => "logoWidth",
|
|
ProviderInfo::LogoHeight => "logoHeight",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ProviderInfo::ProviderName),
|
|
1 => Some(ProviderInfo::ProviderShortName),
|
|
2 => Some(ProviderInfo::UserDocumentation),
|
|
3 => Some(ProviderInfo::DeveloperDocumentation),
|
|
4 => Some(ProviderInfo::ContactUri),
|
|
5 => Some(ProviderInfo::LogoUrl),
|
|
6 => Some(ProviderInfo::LogoWidth),
|
|
7 => Some(ProviderInfo::LogoHeight),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 8;
|
|
}
|
|
|
|
impl serde::Serialize for ProviderInfo {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ProviderInfo {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for PublicStringOptionalType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"None" => PublicStringOptionalType::None,
|
|
b"Value" => PublicStringOptionalType::Value,
|
|
b"EnvironmentVariable" => PublicStringOptionalType::EnvironmentVariable,
|
|
b"File" => PublicStringOptionalType::File,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
PublicStringOptionalType::None => "None",
|
|
PublicStringOptionalType::Value => "Value",
|
|
PublicStringOptionalType::EnvironmentVariable => "EnvironmentVariable",
|
|
PublicStringOptionalType::File => "File",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(PublicStringOptionalType::None),
|
|
1 => Some(PublicStringOptionalType::Value),
|
|
2 => Some(PublicStringOptionalType::EnvironmentVariable),
|
|
3 => Some(PublicStringOptionalType::File),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for PublicStringOptionalType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for PublicStringOptionalType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for PublicTextType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Text" => PublicTextType::Text,
|
|
b"EnvironmentVariable" => PublicTextType::EnvironmentVariable,
|
|
b"File" => PublicTextType::File,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
PublicTextType::Text => "Text",
|
|
PublicTextType::EnvironmentVariable => "EnvironmentVariable",
|
|
PublicTextType::File => "File",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(PublicTextType::Text),
|
|
1 => Some(PublicTextType::EnvironmentVariable),
|
|
2 => Some(PublicTextType::File),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for PublicTextType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for PublicTextType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for QueueExpiryType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Ttl" => QueueExpiryType::Ttl,
|
|
b"Attempts" => QueueExpiryType::Attempts,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
QueueExpiryType::Ttl => "Ttl",
|
|
QueueExpiryType::Attempts => "Attempts",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(QueueExpiryType::Ttl),
|
|
1 => Some(QueueExpiryType::Attempts),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for QueueExpiryType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for QueueExpiryType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for RecipientFlag {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"dsnSent" => RecipientFlag::DsnSent,
|
|
b"spamPayload" => RecipientFlag::SpamPayload,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
RecipientFlag::DsnSent => "dsnSent",
|
|
RecipientFlag::SpamPayload => "spamPayload",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(RecipientFlag::DsnSent),
|
|
1 => Some(RecipientFlag::SpamPayload),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for RecipientFlag {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for RecipientFlag {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for RecipientStatusType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Scheduled" => RecipientStatusType::Scheduled,
|
|
b"Completed" => RecipientStatusType::Completed,
|
|
b"TemporaryFailure" => RecipientStatusType::TemporaryFailure,
|
|
b"PermanentFailure" => RecipientStatusType::PermanentFailure,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
RecipientStatusType::Scheduled => "Scheduled",
|
|
RecipientStatusType::Completed => "Completed",
|
|
RecipientStatusType::TemporaryFailure => "TemporaryFailure",
|
|
RecipientStatusType::PermanentFailure => "PermanentFailure",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(RecipientStatusType::Scheduled),
|
|
1 => Some(RecipientStatusType::Completed),
|
|
2 => Some(RecipientStatusType::TemporaryFailure),
|
|
3 => Some(RecipientStatusType::PermanentFailure),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for RecipientStatusType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for RecipientStatusType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for RedisProtocol {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"resp2" => RedisProtocol::Resp2,
|
|
b"resp3" => RedisProtocol::Resp3,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
RedisProtocol::Resp2 => "resp2",
|
|
RedisProtocol::Resp3 => "resp3",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(RedisProtocol::Resp2),
|
|
1 => Some(RedisProtocol::Resp3),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for RedisProtocol {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for RedisProtocol {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for RolesType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Default" => RolesType::Default,
|
|
b"Custom" => RolesType::Custom,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
RolesType::Default => "Default",
|
|
RolesType::Custom => "Custom",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(RolesType::Default),
|
|
1 => Some(RolesType::Custom),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for RolesType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for RolesType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for S3StoreRegionType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"UsEast1" => S3StoreRegionType::UsEast1,
|
|
b"UsEast2" => S3StoreRegionType::UsEast2,
|
|
b"UsWest1" => S3StoreRegionType::UsWest1,
|
|
b"UsWest2" => S3StoreRegionType::UsWest2,
|
|
b"CaCentral1" => S3StoreRegionType::CaCentral1,
|
|
b"AfSouth1" => S3StoreRegionType::AfSouth1,
|
|
b"ApEast1" => S3StoreRegionType::ApEast1,
|
|
b"ApSouth1" => S3StoreRegionType::ApSouth1,
|
|
b"ApNortheast1" => S3StoreRegionType::ApNortheast1,
|
|
b"ApNortheast2" => S3StoreRegionType::ApNortheast2,
|
|
b"ApNortheast3" => S3StoreRegionType::ApNortheast3,
|
|
b"ApSoutheast1" => S3StoreRegionType::ApSoutheast1,
|
|
b"ApSoutheast2" => S3StoreRegionType::ApSoutheast2,
|
|
b"CnNorth1" => S3StoreRegionType::CnNorth1,
|
|
b"CnNorthwest1" => S3StoreRegionType::CnNorthwest1,
|
|
b"EuNorth1" => S3StoreRegionType::EuNorth1,
|
|
b"EuCentral1" => S3StoreRegionType::EuCentral1,
|
|
b"EuCentral2" => S3StoreRegionType::EuCentral2,
|
|
b"EuWest1" => S3StoreRegionType::EuWest1,
|
|
b"EuWest2" => S3StoreRegionType::EuWest2,
|
|
b"EuWest3" => S3StoreRegionType::EuWest3,
|
|
b"IlCentral1" => S3StoreRegionType::IlCentral1,
|
|
b"MeSouth1" => S3StoreRegionType::MeSouth1,
|
|
b"SaEast1" => S3StoreRegionType::SaEast1,
|
|
b"DoNyc3" => S3StoreRegionType::DoNyc3,
|
|
b"DoAms3" => S3StoreRegionType::DoAms3,
|
|
b"DoSgp1" => S3StoreRegionType::DoSgp1,
|
|
b"DoFra1" => S3StoreRegionType::DoFra1,
|
|
b"Yandex" => S3StoreRegionType::Yandex,
|
|
b"WaUsEast1" => S3StoreRegionType::WaUsEast1,
|
|
b"WaUsEast2" => S3StoreRegionType::WaUsEast2,
|
|
b"WaUsCentral1" => S3StoreRegionType::WaUsCentral1,
|
|
b"WaUsWest1" => S3StoreRegionType::WaUsWest1,
|
|
b"WaCaCentral1" => S3StoreRegionType::WaCaCentral1,
|
|
b"WaEuCentral1" => S3StoreRegionType::WaEuCentral1,
|
|
b"WaEuCentral2" => S3StoreRegionType::WaEuCentral2,
|
|
b"WaEuWest1" => S3StoreRegionType::WaEuWest1,
|
|
b"WaEuWest2" => S3StoreRegionType::WaEuWest2,
|
|
b"WaApNortheast1" => S3StoreRegionType::WaApNortheast1,
|
|
b"WaApNortheast2" => S3StoreRegionType::WaApNortheast2,
|
|
b"WaApSoutheast1" => S3StoreRegionType::WaApSoutheast1,
|
|
b"WaApSoutheast2" => S3StoreRegionType::WaApSoutheast2,
|
|
b"Custom" => S3StoreRegionType::Custom,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
S3StoreRegionType::UsEast1 => "UsEast1",
|
|
S3StoreRegionType::UsEast2 => "UsEast2",
|
|
S3StoreRegionType::UsWest1 => "UsWest1",
|
|
S3StoreRegionType::UsWest2 => "UsWest2",
|
|
S3StoreRegionType::CaCentral1 => "CaCentral1",
|
|
S3StoreRegionType::AfSouth1 => "AfSouth1",
|
|
S3StoreRegionType::ApEast1 => "ApEast1",
|
|
S3StoreRegionType::ApSouth1 => "ApSouth1",
|
|
S3StoreRegionType::ApNortheast1 => "ApNortheast1",
|
|
S3StoreRegionType::ApNortheast2 => "ApNortheast2",
|
|
S3StoreRegionType::ApNortheast3 => "ApNortheast3",
|
|
S3StoreRegionType::ApSoutheast1 => "ApSoutheast1",
|
|
S3StoreRegionType::ApSoutheast2 => "ApSoutheast2",
|
|
S3StoreRegionType::CnNorth1 => "CnNorth1",
|
|
S3StoreRegionType::CnNorthwest1 => "CnNorthwest1",
|
|
S3StoreRegionType::EuNorth1 => "EuNorth1",
|
|
S3StoreRegionType::EuCentral1 => "EuCentral1",
|
|
S3StoreRegionType::EuCentral2 => "EuCentral2",
|
|
S3StoreRegionType::EuWest1 => "EuWest1",
|
|
S3StoreRegionType::EuWest2 => "EuWest2",
|
|
S3StoreRegionType::EuWest3 => "EuWest3",
|
|
S3StoreRegionType::IlCentral1 => "IlCentral1",
|
|
S3StoreRegionType::MeSouth1 => "MeSouth1",
|
|
S3StoreRegionType::SaEast1 => "SaEast1",
|
|
S3StoreRegionType::DoNyc3 => "DoNyc3",
|
|
S3StoreRegionType::DoAms3 => "DoAms3",
|
|
S3StoreRegionType::DoSgp1 => "DoSgp1",
|
|
S3StoreRegionType::DoFra1 => "DoFra1",
|
|
S3StoreRegionType::Yandex => "Yandex",
|
|
S3StoreRegionType::WaUsEast1 => "WaUsEast1",
|
|
S3StoreRegionType::WaUsEast2 => "WaUsEast2",
|
|
S3StoreRegionType::WaUsCentral1 => "WaUsCentral1",
|
|
S3StoreRegionType::WaUsWest1 => "WaUsWest1",
|
|
S3StoreRegionType::WaCaCentral1 => "WaCaCentral1",
|
|
S3StoreRegionType::WaEuCentral1 => "WaEuCentral1",
|
|
S3StoreRegionType::WaEuCentral2 => "WaEuCentral2",
|
|
S3StoreRegionType::WaEuWest1 => "WaEuWest1",
|
|
S3StoreRegionType::WaEuWest2 => "WaEuWest2",
|
|
S3StoreRegionType::WaApNortheast1 => "WaApNortheast1",
|
|
S3StoreRegionType::WaApNortheast2 => "WaApNortheast2",
|
|
S3StoreRegionType::WaApSoutheast1 => "WaApSoutheast1",
|
|
S3StoreRegionType::WaApSoutheast2 => "WaApSoutheast2",
|
|
S3StoreRegionType::Custom => "Custom",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(S3StoreRegionType::UsEast1),
|
|
1 => Some(S3StoreRegionType::UsEast2),
|
|
2 => Some(S3StoreRegionType::UsWest1),
|
|
3 => Some(S3StoreRegionType::UsWest2),
|
|
4 => Some(S3StoreRegionType::CaCentral1),
|
|
5 => Some(S3StoreRegionType::AfSouth1),
|
|
6 => Some(S3StoreRegionType::ApEast1),
|
|
7 => Some(S3StoreRegionType::ApSouth1),
|
|
8 => Some(S3StoreRegionType::ApNortheast1),
|
|
9 => Some(S3StoreRegionType::ApNortheast2),
|
|
10 => Some(S3StoreRegionType::ApNortheast3),
|
|
11 => Some(S3StoreRegionType::ApSoutheast1),
|
|
12 => Some(S3StoreRegionType::ApSoutheast2),
|
|
13 => Some(S3StoreRegionType::CnNorth1),
|
|
14 => Some(S3StoreRegionType::CnNorthwest1),
|
|
15 => Some(S3StoreRegionType::EuNorth1),
|
|
16 => Some(S3StoreRegionType::EuCentral1),
|
|
17 => Some(S3StoreRegionType::EuCentral2),
|
|
18 => Some(S3StoreRegionType::EuWest1),
|
|
19 => Some(S3StoreRegionType::EuWest2),
|
|
20 => Some(S3StoreRegionType::EuWest3),
|
|
21 => Some(S3StoreRegionType::IlCentral1),
|
|
22 => Some(S3StoreRegionType::MeSouth1),
|
|
23 => Some(S3StoreRegionType::SaEast1),
|
|
24 => Some(S3StoreRegionType::DoNyc3),
|
|
25 => Some(S3StoreRegionType::DoAms3),
|
|
26 => Some(S3StoreRegionType::DoSgp1),
|
|
27 => Some(S3StoreRegionType::DoFra1),
|
|
28 => Some(S3StoreRegionType::Yandex),
|
|
29 => Some(S3StoreRegionType::WaUsEast1),
|
|
30 => Some(S3StoreRegionType::WaUsEast2),
|
|
31 => Some(S3StoreRegionType::WaUsCentral1),
|
|
32 => Some(S3StoreRegionType::WaUsWest1),
|
|
33 => Some(S3StoreRegionType::WaCaCentral1),
|
|
34 => Some(S3StoreRegionType::WaEuCentral1),
|
|
35 => Some(S3StoreRegionType::WaEuCentral2),
|
|
36 => Some(S3StoreRegionType::WaEuWest1),
|
|
37 => Some(S3StoreRegionType::WaEuWest2),
|
|
38 => Some(S3StoreRegionType::WaApNortheast1),
|
|
39 => Some(S3StoreRegionType::WaApNortheast2),
|
|
40 => Some(S3StoreRegionType::WaApSoutheast1),
|
|
41 => Some(S3StoreRegionType::WaApSoutheast2),
|
|
42 => Some(S3StoreRegionType::Custom),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 43;
|
|
}
|
|
|
|
impl serde::Serialize for S3StoreRegionType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for S3StoreRegionType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SearchCalendarField {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"title" => SearchCalendarField::Title,
|
|
b"description" => SearchCalendarField::Description,
|
|
b"location" => SearchCalendarField::Location,
|
|
b"owner" => SearchCalendarField::Owner,
|
|
b"attendee" => SearchCalendarField::Attendee,
|
|
b"start" => SearchCalendarField::Start,
|
|
b"uid" => SearchCalendarField::Uid,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SearchCalendarField::Title => "title",
|
|
SearchCalendarField::Description => "description",
|
|
SearchCalendarField::Location => "location",
|
|
SearchCalendarField::Owner => "owner",
|
|
SearchCalendarField::Attendee => "attendee",
|
|
SearchCalendarField::Start => "start",
|
|
SearchCalendarField::Uid => "uid",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SearchCalendarField::Title),
|
|
1 => Some(SearchCalendarField::Description),
|
|
2 => Some(SearchCalendarField::Location),
|
|
3 => Some(SearchCalendarField::Owner),
|
|
4 => Some(SearchCalendarField::Attendee),
|
|
5 => Some(SearchCalendarField::Start),
|
|
6 => Some(SearchCalendarField::Uid),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for SearchCalendarField {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SearchCalendarField {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SearchContactField {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"member" => SearchContactField::Member,
|
|
b"kind" => SearchContactField::Kind,
|
|
b"name" => SearchContactField::Name,
|
|
b"nickname" => SearchContactField::Nickname,
|
|
b"organization" => SearchContactField::Organization,
|
|
b"email" => SearchContactField::Email,
|
|
b"phone" => SearchContactField::Phone,
|
|
b"onlineService" => SearchContactField::OnlineService,
|
|
b"address" => SearchContactField::Address,
|
|
b"note" => SearchContactField::Note,
|
|
b"uid" => SearchContactField::Uid,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SearchContactField::Member => "member",
|
|
SearchContactField::Kind => "kind",
|
|
SearchContactField::Name => "name",
|
|
SearchContactField::Nickname => "nickname",
|
|
SearchContactField::Organization => "organization",
|
|
SearchContactField::Email => "email",
|
|
SearchContactField::Phone => "phone",
|
|
SearchContactField::OnlineService => "onlineService",
|
|
SearchContactField::Address => "address",
|
|
SearchContactField::Note => "note",
|
|
SearchContactField::Uid => "uid",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SearchContactField::Member),
|
|
1 => Some(SearchContactField::Kind),
|
|
2 => Some(SearchContactField::Name),
|
|
3 => Some(SearchContactField::Nickname),
|
|
4 => Some(SearchContactField::Organization),
|
|
5 => Some(SearchContactField::Email),
|
|
6 => Some(SearchContactField::Phone),
|
|
7 => Some(SearchContactField::OnlineService),
|
|
8 => Some(SearchContactField::Address),
|
|
9 => Some(SearchContactField::Note),
|
|
10 => Some(SearchContactField::Uid),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 11;
|
|
}
|
|
|
|
impl serde::Serialize for SearchContactField {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SearchContactField {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SearchEmailField {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"from" => SearchEmailField::From,
|
|
b"to" => SearchEmailField::To,
|
|
b"cc" => SearchEmailField::Cc,
|
|
b"bcc" => SearchEmailField::Bcc,
|
|
b"subject" => SearchEmailField::Subject,
|
|
b"body" => SearchEmailField::Body,
|
|
b"attachment" => SearchEmailField::Attachment,
|
|
b"receivedAt" => SearchEmailField::ReceivedAt,
|
|
b"sentAt" => SearchEmailField::SentAt,
|
|
b"size" => SearchEmailField::Size,
|
|
b"hasAttachment" => SearchEmailField::HasAttachment,
|
|
b"headers" => SearchEmailField::Headers,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SearchEmailField::From => "from",
|
|
SearchEmailField::To => "to",
|
|
SearchEmailField::Cc => "cc",
|
|
SearchEmailField::Bcc => "bcc",
|
|
SearchEmailField::Subject => "subject",
|
|
SearchEmailField::Body => "body",
|
|
SearchEmailField::Attachment => "attachment",
|
|
SearchEmailField::ReceivedAt => "receivedAt",
|
|
SearchEmailField::SentAt => "sentAt",
|
|
SearchEmailField::Size => "size",
|
|
SearchEmailField::HasAttachment => "hasAttachment",
|
|
SearchEmailField::Headers => "headers",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SearchEmailField::From),
|
|
1 => Some(SearchEmailField::To),
|
|
2 => Some(SearchEmailField::Cc),
|
|
3 => Some(SearchEmailField::Bcc),
|
|
4 => Some(SearchEmailField::Subject),
|
|
5 => Some(SearchEmailField::Body),
|
|
6 => Some(SearchEmailField::Attachment),
|
|
7 => Some(SearchEmailField::ReceivedAt),
|
|
8 => Some(SearchEmailField::SentAt),
|
|
9 => Some(SearchEmailField::Size),
|
|
10 => Some(SearchEmailField::HasAttachment),
|
|
11 => Some(SearchEmailField::Headers),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 12;
|
|
}
|
|
|
|
impl serde::Serialize for SearchEmailField {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SearchEmailField {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SearchFileField {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"name" => SearchFileField::Name,
|
|
b"content" => SearchFileField::Content,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SearchFileField::Name => "name",
|
|
SearchFileField::Content => "content",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SearchFileField::Name),
|
|
1 => Some(SearchFileField::Content),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for SearchFileField {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SearchFileField {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SearchStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Default" => SearchStoreType::Default,
|
|
b"ElasticSearch" => SearchStoreType::ElasticSearch,
|
|
b"Meilisearch" => SearchStoreType::Meilisearch,
|
|
b"FoundationDb" => SearchStoreType::FoundationDb,
|
|
b"PostgreSql" => SearchStoreType::PostgreSql,
|
|
b"MySql" => SearchStoreType::MySql,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SearchStoreType::Default => "Default",
|
|
SearchStoreType::ElasticSearch => "ElasticSearch",
|
|
SearchStoreType::Meilisearch => "Meilisearch",
|
|
SearchStoreType::FoundationDb => "FoundationDb",
|
|
SearchStoreType::PostgreSql => "PostgreSql",
|
|
SearchStoreType::MySql => "MySql",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SearchStoreType::Default),
|
|
1 => Some(SearchStoreType::ElasticSearch),
|
|
2 => Some(SearchStoreType::Meilisearch),
|
|
3 => Some(SearchStoreType::FoundationDb),
|
|
4 => Some(SearchStoreType::PostgreSql),
|
|
5 => Some(SearchStoreType::MySql),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for SearchStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SearchStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SearchTracingField {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"eventType" => SearchTracingField::EventType,
|
|
b"queueId" => SearchTracingField::QueueId,
|
|
b"keywords" => SearchTracingField::Keywords,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SearchTracingField::EventType => "eventType",
|
|
SearchTracingField::QueueId => "queueId",
|
|
SearchTracingField::Keywords => "keywords",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SearchTracingField::EventType),
|
|
1 => Some(SearchTracingField::QueueId),
|
|
2 => Some(SearchTracingField::Keywords),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SearchTracingField {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SearchTracingField {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SecretKeyOptionalType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"None" => SecretKeyOptionalType::None,
|
|
b"Value" => SecretKeyOptionalType::Value,
|
|
b"EnvironmentVariable" => SecretKeyOptionalType::EnvironmentVariable,
|
|
b"File" => SecretKeyOptionalType::File,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SecretKeyOptionalType::None => "None",
|
|
SecretKeyOptionalType::Value => "Value",
|
|
SecretKeyOptionalType::EnvironmentVariable => "EnvironmentVariable",
|
|
SecretKeyOptionalType::File => "File",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SecretKeyOptionalType::None),
|
|
1 => Some(SecretKeyOptionalType::Value),
|
|
2 => Some(SecretKeyOptionalType::EnvironmentVariable),
|
|
3 => Some(SecretKeyOptionalType::File),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for SecretKeyOptionalType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SecretKeyOptionalType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SecretKeyType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Value" => SecretKeyType::Value,
|
|
b"EnvironmentVariable" => SecretKeyType::EnvironmentVariable,
|
|
b"File" => SecretKeyType::File,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SecretKeyType::Value => "Value",
|
|
SecretKeyType::EnvironmentVariable => "EnvironmentVariable",
|
|
SecretKeyType::File => "File",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SecretKeyType::Value),
|
|
1 => Some(SecretKeyType::EnvironmentVariable),
|
|
2 => Some(SecretKeyType::File),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SecretKeyType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SecretKeyType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SecretTextOptionalType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"None" => SecretTextOptionalType::None,
|
|
b"Text" => SecretTextOptionalType::Text,
|
|
b"EnvironmentVariable" => SecretTextOptionalType::EnvironmentVariable,
|
|
b"File" => SecretTextOptionalType::File,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SecretTextOptionalType::None => "None",
|
|
SecretTextOptionalType::Text => "Text",
|
|
SecretTextOptionalType::EnvironmentVariable => "EnvironmentVariable",
|
|
SecretTextOptionalType::File => "File",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SecretTextOptionalType::None),
|
|
1 => Some(SecretTextOptionalType::Text),
|
|
2 => Some(SecretTextOptionalType::EnvironmentVariable),
|
|
3 => Some(SecretTextOptionalType::File),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for SecretTextOptionalType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SecretTextOptionalType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SecretTextType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Text" => SecretTextType::Text,
|
|
b"EnvironmentVariable" => SecretTextType::EnvironmentVariable,
|
|
b"File" => SecretTextType::File,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SecretTextType::Text => "Text",
|
|
SecretTextType::EnvironmentVariable => "EnvironmentVariable",
|
|
SecretTextType::File => "File",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SecretTextType::Text),
|
|
1 => Some(SecretTextType::EnvironmentVariable),
|
|
2 => Some(SecretTextType::File),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SecretTextType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SecretTextType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for ServiceProtocol {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"jmap" => ServiceProtocol::Jmap,
|
|
b"imap" => ServiceProtocol::Imap,
|
|
b"pop3" => ServiceProtocol::Pop3,
|
|
b"smtp" => ServiceProtocol::Smtp,
|
|
b"caldav" => ServiceProtocol::Caldav,
|
|
b"carddav" => ServiceProtocol::Carddav,
|
|
b"webdav" => ServiceProtocol::Webdav,
|
|
b"managesieve" => ServiceProtocol::Managesieve,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
ServiceProtocol::Jmap => "jmap",
|
|
ServiceProtocol::Imap => "imap",
|
|
ServiceProtocol::Pop3 => "pop3",
|
|
ServiceProtocol::Smtp => "smtp",
|
|
ServiceProtocol::Caldav => "caldav",
|
|
ServiceProtocol::Carddav => "carddav",
|
|
ServiceProtocol::Webdav => "webdav",
|
|
ServiceProtocol::Managesieve => "managesieve",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(ServiceProtocol::Jmap),
|
|
1 => Some(ServiceProtocol::Imap),
|
|
2 => Some(ServiceProtocol::Pop3),
|
|
3 => Some(ServiceProtocol::Smtp),
|
|
4 => Some(ServiceProtocol::Caldav),
|
|
5 => Some(ServiceProtocol::Carddav),
|
|
6 => Some(ServiceProtocol::Webdav),
|
|
7 => Some(ServiceProtocol::Managesieve),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 8;
|
|
}
|
|
|
|
impl serde::Serialize for ServiceProtocol {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for ServiceProtocol {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SieveCapability {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"envelope" => SieveCapability::Envelope,
|
|
b"envelope-dsn" => SieveCapability::EnvelopeDsn,
|
|
b"envelope-deliverby" => SieveCapability::EnvelopeDeliverby,
|
|
b"fileinto" => SieveCapability::Fileinto,
|
|
b"encoded-character" => SieveCapability::EncodedCharacter,
|
|
b"comparator-elbonia" => SieveCapability::ComparatorElbonia,
|
|
b"comparator-i;octet" => SieveCapability::ComparatorIOctet,
|
|
b"comparator-i;ascii-casemap" => SieveCapability::ComparatorIAsciiCasemap,
|
|
b"comparator-i;ascii-numeric" => SieveCapability::ComparatorIAsciiNumeric,
|
|
b"body" => SieveCapability::Body,
|
|
b"convert" => SieveCapability::Convert,
|
|
b"copy" => SieveCapability::Copy,
|
|
b"relational" => SieveCapability::Relational,
|
|
b"date" => SieveCapability::Date,
|
|
b"index" => SieveCapability::Index,
|
|
b"duplicate" => SieveCapability::Duplicate,
|
|
b"variables" => SieveCapability::Variables,
|
|
b"editheader" => SieveCapability::Editheader,
|
|
b"foreverypart" => SieveCapability::Foreverypart,
|
|
b"mime" => SieveCapability::Mime,
|
|
b"replace" => SieveCapability::Replace,
|
|
b"enclose" => SieveCapability::Enclose,
|
|
b"extracttext" => SieveCapability::Extracttext,
|
|
b"enotify" => SieveCapability::Enotify,
|
|
b"redirect-dsn" => SieveCapability::RedirectDsn,
|
|
b"redirect-deliverby" => SieveCapability::RedirectDeliverby,
|
|
b"environment" => SieveCapability::Environment,
|
|
b"reject" => SieveCapability::Reject,
|
|
b"ereject" => SieveCapability::Ereject,
|
|
b"extlists" => SieveCapability::Extlists,
|
|
b"subaddress" => SieveCapability::Subaddress,
|
|
b"vacation" => SieveCapability::Vacation,
|
|
b"vacation-seconds" => SieveCapability::VacationSeconds,
|
|
b"fcc" => SieveCapability::Fcc,
|
|
b"mailbox" => SieveCapability::Mailbox,
|
|
b"mailboxid" => SieveCapability::Mailboxid,
|
|
b"mboxmetadata" => SieveCapability::Mboxmetadata,
|
|
b"servermetadata" => SieveCapability::Servermetadata,
|
|
b"special-use" => SieveCapability::SpecialUse,
|
|
b"imap4flags" => SieveCapability::Imap4flags,
|
|
b"ihave" => SieveCapability::Ihave,
|
|
b"imapsieve" => SieveCapability::Imapsieve,
|
|
b"include" => SieveCapability::Include,
|
|
b"regex" => SieveCapability::Regex,
|
|
b"spamtest" => SieveCapability::Spamtest,
|
|
b"spamtestplus" => SieveCapability::Spamtestplus,
|
|
b"virustest" => SieveCapability::Virustest,
|
|
b"vnd.inbuxa.while" => SieveCapability::VndStalwartWhile,
|
|
b"vnd.inbuxa.expressions" => SieveCapability::VndStalwartExpressions,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SieveCapability::Envelope => "envelope",
|
|
SieveCapability::EnvelopeDsn => "envelope-dsn",
|
|
SieveCapability::EnvelopeDeliverby => "envelope-deliverby",
|
|
SieveCapability::Fileinto => "fileinto",
|
|
SieveCapability::EncodedCharacter => "encoded-character",
|
|
SieveCapability::ComparatorElbonia => "comparator-elbonia",
|
|
SieveCapability::ComparatorIOctet => "comparator-i;octet",
|
|
SieveCapability::ComparatorIAsciiCasemap => "comparator-i;ascii-casemap",
|
|
SieveCapability::ComparatorIAsciiNumeric => "comparator-i;ascii-numeric",
|
|
SieveCapability::Body => "body",
|
|
SieveCapability::Convert => "convert",
|
|
SieveCapability::Copy => "copy",
|
|
SieveCapability::Relational => "relational",
|
|
SieveCapability::Date => "date",
|
|
SieveCapability::Index => "index",
|
|
SieveCapability::Duplicate => "duplicate",
|
|
SieveCapability::Variables => "variables",
|
|
SieveCapability::Editheader => "editheader",
|
|
SieveCapability::Foreverypart => "foreverypart",
|
|
SieveCapability::Mime => "mime",
|
|
SieveCapability::Replace => "replace",
|
|
SieveCapability::Enclose => "enclose",
|
|
SieveCapability::Extracttext => "extracttext",
|
|
SieveCapability::Enotify => "enotify",
|
|
SieveCapability::RedirectDsn => "redirect-dsn",
|
|
SieveCapability::RedirectDeliverby => "redirect-deliverby",
|
|
SieveCapability::Environment => "environment",
|
|
SieveCapability::Reject => "reject",
|
|
SieveCapability::Ereject => "ereject",
|
|
SieveCapability::Extlists => "extlists",
|
|
SieveCapability::Subaddress => "subaddress",
|
|
SieveCapability::Vacation => "vacation",
|
|
SieveCapability::VacationSeconds => "vacation-seconds",
|
|
SieveCapability::Fcc => "fcc",
|
|
SieveCapability::Mailbox => "mailbox",
|
|
SieveCapability::Mailboxid => "mailboxid",
|
|
SieveCapability::Mboxmetadata => "mboxmetadata",
|
|
SieveCapability::Servermetadata => "servermetadata",
|
|
SieveCapability::SpecialUse => "special-use",
|
|
SieveCapability::Imap4flags => "imap4flags",
|
|
SieveCapability::Ihave => "ihave",
|
|
SieveCapability::Imapsieve => "imapsieve",
|
|
SieveCapability::Include => "include",
|
|
SieveCapability::Regex => "regex",
|
|
SieveCapability::Spamtest => "spamtest",
|
|
SieveCapability::Spamtestplus => "spamtestplus",
|
|
SieveCapability::Virustest => "virustest",
|
|
SieveCapability::VndStalwartWhile => "vnd.inbuxa.while",
|
|
SieveCapability::VndStalwartExpressions => "vnd.inbuxa.expressions",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SieveCapability::Envelope),
|
|
1 => Some(SieveCapability::EnvelopeDsn),
|
|
2 => Some(SieveCapability::EnvelopeDeliverby),
|
|
3 => Some(SieveCapability::Fileinto),
|
|
4 => Some(SieveCapability::EncodedCharacter),
|
|
5 => Some(SieveCapability::ComparatorElbonia),
|
|
6 => Some(SieveCapability::ComparatorIOctet),
|
|
7 => Some(SieveCapability::ComparatorIAsciiCasemap),
|
|
8 => Some(SieveCapability::ComparatorIAsciiNumeric),
|
|
9 => Some(SieveCapability::Body),
|
|
10 => Some(SieveCapability::Convert),
|
|
11 => Some(SieveCapability::Copy),
|
|
12 => Some(SieveCapability::Relational),
|
|
13 => Some(SieveCapability::Date),
|
|
14 => Some(SieveCapability::Index),
|
|
15 => Some(SieveCapability::Duplicate),
|
|
16 => Some(SieveCapability::Variables),
|
|
17 => Some(SieveCapability::Editheader),
|
|
18 => Some(SieveCapability::Foreverypart),
|
|
19 => Some(SieveCapability::Mime),
|
|
20 => Some(SieveCapability::Replace),
|
|
21 => Some(SieveCapability::Enclose),
|
|
22 => Some(SieveCapability::Extracttext),
|
|
23 => Some(SieveCapability::Enotify),
|
|
24 => Some(SieveCapability::RedirectDsn),
|
|
25 => Some(SieveCapability::RedirectDeliverby),
|
|
26 => Some(SieveCapability::Environment),
|
|
27 => Some(SieveCapability::Reject),
|
|
28 => Some(SieveCapability::Ereject),
|
|
29 => Some(SieveCapability::Extlists),
|
|
30 => Some(SieveCapability::Subaddress),
|
|
31 => Some(SieveCapability::Vacation),
|
|
32 => Some(SieveCapability::VacationSeconds),
|
|
33 => Some(SieveCapability::Fcc),
|
|
34 => Some(SieveCapability::Mailbox),
|
|
35 => Some(SieveCapability::Mailboxid),
|
|
36 => Some(SieveCapability::Mboxmetadata),
|
|
37 => Some(SieveCapability::Servermetadata),
|
|
38 => Some(SieveCapability::SpecialUse),
|
|
39 => Some(SieveCapability::Imap4flags),
|
|
40 => Some(SieveCapability::Ihave),
|
|
41 => Some(SieveCapability::Imapsieve),
|
|
42 => Some(SieveCapability::Include),
|
|
43 => Some(SieveCapability::Regex),
|
|
44 => Some(SieveCapability::Spamtest),
|
|
45 => Some(SieveCapability::Spamtestplus),
|
|
46 => Some(SieveCapability::Virustest),
|
|
47 => Some(SieveCapability::VndStalwartWhile),
|
|
48 => Some(SieveCapability::VndStalwartExpressions),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 49;
|
|
}
|
|
|
|
impl serde::Serialize for SieveCapability {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SieveCapability {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for Sig0Algorithm {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"ecdsa-p256-sha256" => Sig0Algorithm::EcdsaP256Sha256,
|
|
b"ecdsa-p384-sha384" => Sig0Algorithm::EcdsaP384Sha384,
|
|
b"ed25519" => Sig0Algorithm::Ed25519,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
Sig0Algorithm::EcdsaP256Sha256 => "ecdsa-p256-sha256",
|
|
Sig0Algorithm::EcdsaP384Sha384 => "ecdsa-p384-sha384",
|
|
Sig0Algorithm::Ed25519 => "ed25519",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(Sig0Algorithm::EcdsaP256Sha256),
|
|
1 => Some(Sig0Algorithm::EcdsaP384Sha384),
|
|
2 => Some(Sig0Algorithm::Ed25519),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for Sig0Algorithm {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for Sig0Algorithm {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamClassifierModelType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"FtrlFh" => SpamClassifierModelType::FtrlFh,
|
|
b"FtrlCcfh" => SpamClassifierModelType::FtrlCcfh,
|
|
b"Disabled" => SpamClassifierModelType::Disabled,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamClassifierModelType::FtrlFh => "FtrlFh",
|
|
SpamClassifierModelType::FtrlCcfh => "FtrlCcfh",
|
|
SpamClassifierModelType::Disabled => "Disabled",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamClassifierModelType::FtrlFh),
|
|
1 => Some(SpamClassifierModelType::FtrlCcfh),
|
|
2 => Some(SpamClassifierModelType::Disabled),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SpamClassifierModelType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamClassifierModelType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamClassifyParameters {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"bit7" => SpamClassifyParameters::Bit7,
|
|
b"bit8Mime - 8-bit MIME message content" => SpamClassifyParameters::Bit8Mime8BitMIMEMessageContent,
|
|
b"binaryMime" => SpamClassifyParameters::BinaryMime,
|
|
b"smtpUtf8" => SpamClassifyParameters::SmtpUtf8,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamClassifyParameters::Bit7 => "bit7",
|
|
SpamClassifyParameters::Bit8Mime8BitMIMEMessageContent => {
|
|
"bit8Mime - 8-bit MIME message content"
|
|
}
|
|
SpamClassifyParameters::BinaryMime => "binaryMime",
|
|
SpamClassifyParameters::SmtpUtf8 => "smtpUtf8",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamClassifyParameters::Bit7),
|
|
1 => Some(SpamClassifyParameters::Bit8Mime8BitMIMEMessageContent),
|
|
2 => Some(SpamClassifyParameters::BinaryMime),
|
|
3 => Some(SpamClassifyParameters::SmtpUtf8),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for SpamClassifyParameters {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamClassifyParameters {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamClassifyResult {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"spam" => SpamClassifyResult::Spam,
|
|
b"ham" => SpamClassifyResult::Ham,
|
|
b"reject" => SpamClassifyResult::Reject,
|
|
b"discard" => SpamClassifyResult::Discard,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamClassifyResult::Spam => "spam",
|
|
SpamClassifyResult::Ham => "ham",
|
|
SpamClassifyResult::Reject => "reject",
|
|
SpamClassifyResult::Discard => "discard",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamClassifyResult::Spam),
|
|
1 => Some(SpamClassifyResult::Ham),
|
|
2 => Some(SpamClassifyResult::Reject),
|
|
3 => Some(SpamClassifyResult::Discard),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for SpamClassifyResult {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamClassifyResult {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamClassifyTagDisposition {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"score" => SpamClassifyTagDisposition::Score,
|
|
b"reject" => SpamClassifyTagDisposition::Reject,
|
|
b"discard" => SpamClassifyTagDisposition::Discard,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamClassifyTagDisposition::Score => "score",
|
|
SpamClassifyTagDisposition::Reject => "reject",
|
|
SpamClassifyTagDisposition::Discard => "discard",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamClassifyTagDisposition::Score),
|
|
1 => Some(SpamClassifyTagDisposition::Reject),
|
|
2 => Some(SpamClassifyTagDisposition::Discard),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SpamClassifyTagDisposition {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamClassifyTagDisposition {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamDnsblServerType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Any" => SpamDnsblServerType::Any,
|
|
b"Url" => SpamDnsblServerType::Url,
|
|
b"Domain" => SpamDnsblServerType::Domain,
|
|
b"Email" => SpamDnsblServerType::Email,
|
|
b"Ip" => SpamDnsblServerType::Ip,
|
|
b"Header" => SpamDnsblServerType::Header,
|
|
b"Body" => SpamDnsblServerType::Body,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamDnsblServerType::Any => "Any",
|
|
SpamDnsblServerType::Url => "Url",
|
|
SpamDnsblServerType::Domain => "Domain",
|
|
SpamDnsblServerType::Email => "Email",
|
|
SpamDnsblServerType::Ip => "Ip",
|
|
SpamDnsblServerType::Header => "Header",
|
|
SpamDnsblServerType::Body => "Body",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamDnsblServerType::Any),
|
|
1 => Some(SpamDnsblServerType::Url),
|
|
2 => Some(SpamDnsblServerType::Domain),
|
|
3 => Some(SpamDnsblServerType::Email),
|
|
4 => Some(SpamDnsblServerType::Ip),
|
|
5 => Some(SpamDnsblServerType::Header),
|
|
6 => Some(SpamDnsblServerType::Body),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for SpamDnsblServerType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamDnsblServerType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamLlmType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disable" => SpamLlmType::Disable,
|
|
b"Enable" => SpamLlmType::Enable,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamLlmType::Disable => "Disable",
|
|
SpamLlmType::Enable => "Enable",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamLlmType::Disable),
|
|
1 => Some(SpamLlmType::Enable),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for SpamLlmType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamLlmType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamRuleType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Any" => SpamRuleType::Any,
|
|
b"Url" => SpamRuleType::Url,
|
|
b"Domain" => SpamRuleType::Domain,
|
|
b"Email" => SpamRuleType::Email,
|
|
b"Ip" => SpamRuleType::Ip,
|
|
b"Header" => SpamRuleType::Header,
|
|
b"Body" => SpamRuleType::Body,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamRuleType::Any => "Any",
|
|
SpamRuleType::Url => "Url",
|
|
SpamRuleType::Domain => "Domain",
|
|
SpamRuleType::Email => "Email",
|
|
SpamRuleType::Ip => "Ip",
|
|
SpamRuleType::Header => "Header",
|
|
SpamRuleType::Body => "Body",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamRuleType::Any),
|
|
1 => Some(SpamRuleType::Url),
|
|
2 => Some(SpamRuleType::Domain),
|
|
3 => Some(SpamRuleType::Email),
|
|
4 => Some(SpamRuleType::Ip),
|
|
5 => Some(SpamRuleType::Header),
|
|
6 => Some(SpamRuleType::Body),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for SpamRuleType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamRuleType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpamTagType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Score" => SpamTagType::Score,
|
|
b"Discard" => SpamTagType::Discard,
|
|
b"Reject" => SpamTagType::Reject,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpamTagType::Score => "Score",
|
|
SpamTagType::Discard => "Discard",
|
|
SpamTagType::Reject => "Reject",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpamTagType::Score),
|
|
1 => Some(SpamTagType::Discard),
|
|
2 => Some(SpamTagType::Reject),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SpamTagType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpamTagType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpecialUse {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"inbox" => SpecialUse::Inbox,
|
|
b"trash" => SpecialUse::Trash,
|
|
b"junk" => SpecialUse::Junk,
|
|
b"drafts" => SpecialUse::Drafts,
|
|
b"archive" => SpecialUse::Archive,
|
|
b"sent" => SpecialUse::Sent,
|
|
b"shared" => SpecialUse::Shared,
|
|
b"important" => SpecialUse::Important,
|
|
b"memos" => SpecialUse::Memos,
|
|
b"scheduled" => SpecialUse::Scheduled,
|
|
b"snoozed" => SpecialUse::Snoozed,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpecialUse::Inbox => "inbox",
|
|
SpecialUse::Trash => "trash",
|
|
SpecialUse::Junk => "junk",
|
|
SpecialUse::Drafts => "drafts",
|
|
SpecialUse::Archive => "archive",
|
|
SpecialUse::Sent => "sent",
|
|
SpecialUse::Shared => "shared",
|
|
SpecialUse::Important => "important",
|
|
SpecialUse::Memos => "memos",
|
|
SpecialUse::Scheduled => "scheduled",
|
|
SpecialUse::Snoozed => "snoozed",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpecialUse::Inbox),
|
|
1 => Some(SpecialUse::Trash),
|
|
2 => Some(SpecialUse::Junk),
|
|
3 => Some(SpecialUse::Drafts),
|
|
4 => Some(SpecialUse::Archive),
|
|
5 => Some(SpecialUse::Sent),
|
|
6 => Some(SpecialUse::Shared),
|
|
7 => Some(SpecialUse::Important),
|
|
8 => Some(SpecialUse::Memos),
|
|
9 => Some(SpecialUse::Scheduled),
|
|
10 => Some(SpecialUse::Snoozed),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 11;
|
|
}
|
|
|
|
impl serde::Serialize for SpecialUse {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpecialUse {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpfAuthResult {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"none" => SpfAuthResult::None,
|
|
b"neutral" => SpfAuthResult::Neutral,
|
|
b"pass" => SpfAuthResult::Pass,
|
|
b"fail" => SpfAuthResult::Fail,
|
|
b"softFail" => SpfAuthResult::SoftFail,
|
|
b"tempError" => SpfAuthResult::TempError,
|
|
b"permError" => SpfAuthResult::PermError,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpfAuthResult::None => "none",
|
|
SpfAuthResult::Neutral => "neutral",
|
|
SpfAuthResult::Pass => "pass",
|
|
SpfAuthResult::Fail => "fail",
|
|
SpfAuthResult::SoftFail => "softFail",
|
|
SpfAuthResult::TempError => "tempError",
|
|
SpfAuthResult::PermError => "permError",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpfAuthResult::None),
|
|
1 => Some(SpfAuthResult::Neutral),
|
|
2 => Some(SpfAuthResult::Pass),
|
|
3 => Some(SpfAuthResult::Fail),
|
|
4 => Some(SpfAuthResult::SoftFail),
|
|
5 => Some(SpfAuthResult::TempError),
|
|
6 => Some(SpfAuthResult::PermError),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 7;
|
|
}
|
|
|
|
impl serde::Serialize for SpfAuthResult {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpfAuthResult {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SpfDomainScope {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"helo" => SpfDomainScope::Helo,
|
|
b"mailFrom" => SpfDomainScope::MailFrom,
|
|
b"unspecified" => SpfDomainScope::Unspecified,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SpfDomainScope::Helo => "helo",
|
|
SpfDomainScope::MailFrom => "mailFrom",
|
|
SpfDomainScope::Unspecified => "unspecified",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SpfDomainScope::Helo),
|
|
1 => Some(SpfDomainScope::MailFrom),
|
|
2 => Some(SpfDomainScope::Unspecified),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SpfDomainScope {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SpfDomainScope {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SqlAuthStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Default" => SqlAuthStoreType::Default,
|
|
b"PostgreSql" => SqlAuthStoreType::PostgreSql,
|
|
b"MySql" => SqlAuthStoreType::MySql,
|
|
b"Sqlite" => SqlAuthStoreType::Sqlite,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SqlAuthStoreType::Default => "Default",
|
|
SqlAuthStoreType::PostgreSql => "PostgreSql",
|
|
SqlAuthStoreType::MySql => "MySql",
|
|
SqlAuthStoreType::Sqlite => "Sqlite",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SqlAuthStoreType::Default),
|
|
1 => Some(SqlAuthStoreType::PostgreSql),
|
|
2 => Some(SqlAuthStoreType::MySql),
|
|
3 => Some(SqlAuthStoreType::Sqlite),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for SqlAuthStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SqlAuthStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for StorageQuota {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"maxEmails" => StorageQuota::MaxEmails,
|
|
b"maxMailboxes" => StorageQuota::MaxMailboxes,
|
|
b"maxEmailSubmissions" => StorageQuota::MaxEmailSubmissions,
|
|
b"maxEmailIdentities" => StorageQuota::MaxEmailIdentities,
|
|
b"maxParticipantIdentities" => StorageQuota::MaxParticipantIdentities,
|
|
b"maxSieveScripts" => StorageQuota::MaxSieveScripts,
|
|
b"maxPushSubscriptions" => StorageQuota::MaxPushSubscriptions,
|
|
b"maxCalendars" => StorageQuota::MaxCalendars,
|
|
b"maxCalendarEvents" => StorageQuota::MaxCalendarEvents,
|
|
b"maxCalendarEventNotifications" => StorageQuota::MaxCalendarEventNotifications,
|
|
b"maxAddressBooks" => StorageQuota::MaxAddressBooks,
|
|
b"maxContactCards" => StorageQuota::MaxContactCards,
|
|
b"maxFiles" => StorageQuota::MaxFiles,
|
|
b"maxFolders" => StorageQuota::MaxFolders,
|
|
b"maxMaskedAddresses" => StorageQuota::MaxMaskedAddresses,
|
|
b"maxAppPasswords" => StorageQuota::MaxAppPasswords,
|
|
b"maxApiKeys" => StorageQuota::MaxApiKeys,
|
|
b"maxPublicKeys" => StorageQuota::MaxPublicKeys,
|
|
b"maxDiskQuota" => StorageQuota::MaxDiskQuota,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
StorageQuota::MaxEmails => "maxEmails",
|
|
StorageQuota::MaxMailboxes => "maxMailboxes",
|
|
StorageQuota::MaxEmailSubmissions => "maxEmailSubmissions",
|
|
StorageQuota::MaxEmailIdentities => "maxEmailIdentities",
|
|
StorageQuota::MaxParticipantIdentities => "maxParticipantIdentities",
|
|
StorageQuota::MaxSieveScripts => "maxSieveScripts",
|
|
StorageQuota::MaxPushSubscriptions => "maxPushSubscriptions",
|
|
StorageQuota::MaxCalendars => "maxCalendars",
|
|
StorageQuota::MaxCalendarEvents => "maxCalendarEvents",
|
|
StorageQuota::MaxCalendarEventNotifications => "maxCalendarEventNotifications",
|
|
StorageQuota::MaxAddressBooks => "maxAddressBooks",
|
|
StorageQuota::MaxContactCards => "maxContactCards",
|
|
StorageQuota::MaxFiles => "maxFiles",
|
|
StorageQuota::MaxFolders => "maxFolders",
|
|
StorageQuota::MaxMaskedAddresses => "maxMaskedAddresses",
|
|
StorageQuota::MaxAppPasswords => "maxAppPasswords",
|
|
StorageQuota::MaxApiKeys => "maxApiKeys",
|
|
StorageQuota::MaxPublicKeys => "maxPublicKeys",
|
|
StorageQuota::MaxDiskQuota => "maxDiskQuota",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(StorageQuota::MaxEmails),
|
|
1 => Some(StorageQuota::MaxMailboxes),
|
|
2 => Some(StorageQuota::MaxEmailSubmissions),
|
|
3 => Some(StorageQuota::MaxEmailIdentities),
|
|
4 => Some(StorageQuota::MaxParticipantIdentities),
|
|
5 => Some(StorageQuota::MaxSieveScripts),
|
|
6 => Some(StorageQuota::MaxPushSubscriptions),
|
|
7 => Some(StorageQuota::MaxCalendars),
|
|
8 => Some(StorageQuota::MaxCalendarEvents),
|
|
9 => Some(StorageQuota::MaxCalendarEventNotifications),
|
|
10 => Some(StorageQuota::MaxAddressBooks),
|
|
11 => Some(StorageQuota::MaxContactCards),
|
|
12 => Some(StorageQuota::MaxFiles),
|
|
13 => Some(StorageQuota::MaxFolders),
|
|
14 => Some(StorageQuota::MaxMaskedAddresses),
|
|
15 => Some(StorageQuota::MaxAppPasswords),
|
|
16 => Some(StorageQuota::MaxApiKeys),
|
|
17 => Some(StorageQuota::MaxPublicKeys),
|
|
18 => Some(StorageQuota::MaxDiskQuota),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 19;
|
|
}
|
|
|
|
impl serde::Serialize for StorageQuota {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for StorageQuota {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for SubAddressingType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Enabled" => SubAddressingType::Enabled,
|
|
b"Custom" => SubAddressingType::Custom,
|
|
b"Disabled" => SubAddressingType::Disabled,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
SubAddressingType::Enabled => "Enabled",
|
|
SubAddressingType::Custom => "Custom",
|
|
SubAddressingType::Disabled => "Disabled",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(SubAddressingType::Enabled),
|
|
1 => Some(SubAddressingType::Custom),
|
|
2 => Some(SubAddressingType::Disabled),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for SubAddressingType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for SubAddressingType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TaskAccountMaintenanceType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"purge" => TaskAccountMaintenanceType::Purge,
|
|
b"reindex" => TaskAccountMaintenanceType::Reindex,
|
|
b"recalculateImapUid" => TaskAccountMaintenanceType::RecalculateImapUid,
|
|
b"recalculateQuota" => TaskAccountMaintenanceType::RecalculateQuota,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TaskAccountMaintenanceType::Purge => "purge",
|
|
TaskAccountMaintenanceType::Reindex => "reindex",
|
|
TaskAccountMaintenanceType::RecalculateImapUid => "recalculateImapUid",
|
|
TaskAccountMaintenanceType::RecalculateQuota => "recalculateQuota",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TaskAccountMaintenanceType::Purge),
|
|
1 => Some(TaskAccountMaintenanceType::Reindex),
|
|
2 => Some(TaskAccountMaintenanceType::RecalculateImapUid),
|
|
3 => Some(TaskAccountMaintenanceType::RecalculateQuota),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for TaskAccountMaintenanceType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TaskAccountMaintenanceType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TaskRetryStrategyType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"ExponentialBackoff" => TaskRetryStrategyType::ExponentialBackoff,
|
|
b"FixedDelay" => TaskRetryStrategyType::FixedDelay,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TaskRetryStrategyType::ExponentialBackoff => "ExponentialBackoff",
|
|
TaskRetryStrategyType::FixedDelay => "FixedDelay",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TaskRetryStrategyType::ExponentialBackoff),
|
|
1 => Some(TaskRetryStrategyType::FixedDelay),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for TaskRetryStrategyType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TaskRetryStrategyType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TaskSpamFilterMaintenanceType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"train" => TaskSpamFilterMaintenanceType::Train,
|
|
b"retrain" => TaskSpamFilterMaintenanceType::Retrain,
|
|
b"abort" => TaskSpamFilterMaintenanceType::Abort,
|
|
b"reset" => TaskSpamFilterMaintenanceType::Reset,
|
|
b"updateRules" => TaskSpamFilterMaintenanceType::UpdateRules,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TaskSpamFilterMaintenanceType::Train => "train",
|
|
TaskSpamFilterMaintenanceType::Retrain => "retrain",
|
|
TaskSpamFilterMaintenanceType::Abort => "abort",
|
|
TaskSpamFilterMaintenanceType::Reset => "reset",
|
|
TaskSpamFilterMaintenanceType::UpdateRules => "updateRules",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TaskSpamFilterMaintenanceType::Train),
|
|
1 => Some(TaskSpamFilterMaintenanceType::Retrain),
|
|
2 => Some(TaskSpamFilterMaintenanceType::Abort),
|
|
3 => Some(TaskSpamFilterMaintenanceType::Reset),
|
|
4 => Some(TaskSpamFilterMaintenanceType::UpdateRules),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for TaskSpamFilterMaintenanceType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TaskSpamFilterMaintenanceType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TaskStatusType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Pending" => TaskStatusType::Pending,
|
|
b"Retry" => TaskStatusType::Retry,
|
|
b"Failed" => TaskStatusType::Failed,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TaskStatusType::Pending => "Pending",
|
|
TaskStatusType::Retry => "Retry",
|
|
TaskStatusType::Failed => "Failed",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TaskStatusType::Pending),
|
|
1 => Some(TaskStatusType::Retry),
|
|
2 => Some(TaskStatusType::Failed),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for TaskStatusType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TaskStatusType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TaskStoreMaintenanceType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"reindexAccounts" => TaskStoreMaintenanceType::ReindexAccounts,
|
|
b"reindexTelemetry" => TaskStoreMaintenanceType::ReindexTelemetry,
|
|
b"purgeAccounts" => TaskStoreMaintenanceType::PurgeAccounts,
|
|
b"purgeData" => TaskStoreMaintenanceType::PurgeData,
|
|
b"purgeBlob" => TaskStoreMaintenanceType::PurgeBlob,
|
|
b"resetRateLimiters" => TaskStoreMaintenanceType::ResetRateLimiters,
|
|
b"resetUserQuotas" => TaskStoreMaintenanceType::ResetUserQuotas,
|
|
b"resetTenantQuotas" => TaskStoreMaintenanceType::ResetTenantQuotas,
|
|
b"resetBlobQuotas" => TaskStoreMaintenanceType::ResetBlobQuotas,
|
|
b"removeAuthTokens" => TaskStoreMaintenanceType::RemoveAuthTokens,
|
|
b"removeLockQueueMessage" => TaskStoreMaintenanceType::RemoveLockQueueMessage,
|
|
b"removeLockTask" => TaskStoreMaintenanceType::RemoveLockTask,
|
|
b"removeLockDav" => TaskStoreMaintenanceType::RemoveLockDav,
|
|
b"removeSieveId" => TaskStoreMaintenanceType::RemoveSieveId,
|
|
b"removeGreylist" => TaskStoreMaintenanceType::RemoveGreylist,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TaskStoreMaintenanceType::ReindexAccounts => "reindexAccounts",
|
|
TaskStoreMaintenanceType::ReindexTelemetry => "reindexTelemetry",
|
|
TaskStoreMaintenanceType::PurgeAccounts => "purgeAccounts",
|
|
TaskStoreMaintenanceType::PurgeData => "purgeData",
|
|
TaskStoreMaintenanceType::PurgeBlob => "purgeBlob",
|
|
TaskStoreMaintenanceType::ResetRateLimiters => "resetRateLimiters",
|
|
TaskStoreMaintenanceType::ResetUserQuotas => "resetUserQuotas",
|
|
TaskStoreMaintenanceType::ResetTenantQuotas => "resetTenantQuotas",
|
|
TaskStoreMaintenanceType::ResetBlobQuotas => "resetBlobQuotas",
|
|
TaskStoreMaintenanceType::RemoveAuthTokens => "removeAuthTokens",
|
|
TaskStoreMaintenanceType::RemoveLockQueueMessage => "removeLockQueueMessage",
|
|
TaskStoreMaintenanceType::RemoveLockTask => "removeLockTask",
|
|
TaskStoreMaintenanceType::RemoveLockDav => "removeLockDav",
|
|
TaskStoreMaintenanceType::RemoveSieveId => "removeSieveId",
|
|
TaskStoreMaintenanceType::RemoveGreylist => "removeGreylist",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TaskStoreMaintenanceType::ReindexAccounts),
|
|
1 => Some(TaskStoreMaintenanceType::ReindexTelemetry),
|
|
2 => Some(TaskStoreMaintenanceType::PurgeAccounts),
|
|
3 => Some(TaskStoreMaintenanceType::PurgeData),
|
|
4 => Some(TaskStoreMaintenanceType::PurgeBlob),
|
|
5 => Some(TaskStoreMaintenanceType::ResetRateLimiters),
|
|
6 => Some(TaskStoreMaintenanceType::ResetUserQuotas),
|
|
7 => Some(TaskStoreMaintenanceType::ResetTenantQuotas),
|
|
8 => Some(TaskStoreMaintenanceType::ResetBlobQuotas),
|
|
9 => Some(TaskStoreMaintenanceType::RemoveAuthTokens),
|
|
10 => Some(TaskStoreMaintenanceType::RemoveLockQueueMessage),
|
|
11 => Some(TaskStoreMaintenanceType::RemoveLockTask),
|
|
12 => Some(TaskStoreMaintenanceType::RemoveLockDav),
|
|
13 => Some(TaskStoreMaintenanceType::RemoveSieveId),
|
|
14 => Some(TaskStoreMaintenanceType::RemoveGreylist),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 15;
|
|
}
|
|
|
|
impl serde::Serialize for TaskStoreMaintenanceType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TaskStoreMaintenanceType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TaskTenantMaintenanceType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"recalculateQuota" => TaskTenantMaintenanceType::RecalculateQuota,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TaskTenantMaintenanceType::RecalculateQuota => "recalculateQuota",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TaskTenantMaintenanceType::RecalculateQuota),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 1;
|
|
}
|
|
|
|
impl serde::Serialize for TaskTenantMaintenanceType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TaskTenantMaintenanceType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TaskType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"IndexDocument" => TaskType::IndexDocument,
|
|
b"UnindexDocument" => TaskType::UnindexDocument,
|
|
b"IndexTrace" => TaskType::IndexTrace,
|
|
b"CalendarAlarmEmail" => TaskType::CalendarAlarmEmail,
|
|
b"CalendarAlarmNotification" => TaskType::CalendarAlarmNotification,
|
|
b"CalendarItipMessage" => TaskType::CalendarItipMessage,
|
|
b"MergeThreads" => TaskType::MergeThreads,
|
|
b"DmarcReport" => TaskType::DmarcReport,
|
|
b"TlsReport" => TaskType::TlsReport,
|
|
b"RestoreArchivedItem" => TaskType::RestoreArchivedItem,
|
|
b"DestroyAccount" => TaskType::DestroyAccount,
|
|
b"AccountMaintenance" => TaskType::AccountMaintenance,
|
|
b"TenantMaintenance" => TaskType::TenantMaintenance,
|
|
b"StoreMaintenance" => TaskType::StoreMaintenance,
|
|
b"SpamFilterMaintenance" => TaskType::SpamFilterMaintenance,
|
|
b"AcmeRenewal" => TaskType::AcmeRenewal,
|
|
b"DkimManagement" => TaskType::DkimManagement,
|
|
b"DnsManagement" => TaskType::DnsManagement,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TaskType::IndexDocument => "IndexDocument",
|
|
TaskType::UnindexDocument => "UnindexDocument",
|
|
TaskType::IndexTrace => "IndexTrace",
|
|
TaskType::CalendarAlarmEmail => "CalendarAlarmEmail",
|
|
TaskType::CalendarAlarmNotification => "CalendarAlarmNotification",
|
|
TaskType::CalendarItipMessage => "CalendarItipMessage",
|
|
TaskType::MergeThreads => "MergeThreads",
|
|
TaskType::DmarcReport => "DmarcReport",
|
|
TaskType::TlsReport => "TlsReport",
|
|
TaskType::RestoreArchivedItem => "RestoreArchivedItem",
|
|
TaskType::DestroyAccount => "DestroyAccount",
|
|
TaskType::AccountMaintenance => "AccountMaintenance",
|
|
TaskType::TenantMaintenance => "TenantMaintenance",
|
|
TaskType::StoreMaintenance => "StoreMaintenance",
|
|
TaskType::SpamFilterMaintenance => "SpamFilterMaintenance",
|
|
TaskType::AcmeRenewal => "AcmeRenewal",
|
|
TaskType::DkimManagement => "DkimManagement",
|
|
TaskType::DnsManagement => "DnsManagement",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TaskType::IndexDocument),
|
|
1 => Some(TaskType::UnindexDocument),
|
|
2 => Some(TaskType::IndexTrace),
|
|
3 => Some(TaskType::CalendarAlarmEmail),
|
|
4 => Some(TaskType::CalendarAlarmNotification),
|
|
5 => Some(TaskType::CalendarItipMessage),
|
|
6 => Some(TaskType::MergeThreads),
|
|
7 => Some(TaskType::DmarcReport),
|
|
8 => Some(TaskType::TlsReport),
|
|
9 => Some(TaskType::RestoreArchivedItem),
|
|
10 => Some(TaskType::DestroyAccount),
|
|
11 => Some(TaskType::AccountMaintenance),
|
|
12 => Some(TaskType::TenantMaintenance),
|
|
13 => Some(TaskType::StoreMaintenance),
|
|
14 => Some(TaskType::SpamFilterMaintenance),
|
|
15 => Some(TaskType::AcmeRenewal),
|
|
16 => Some(TaskType::DkimManagement),
|
|
17 => Some(TaskType::DnsManagement),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 18;
|
|
}
|
|
|
|
impl serde::Serialize for TaskType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TaskType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TenantStorageQuota {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"maxAccounts" => TenantStorageQuota::MaxAccounts,
|
|
b"maxGroups" => TenantStorageQuota::MaxGroups,
|
|
b"maxDomains" => TenantStorageQuota::MaxDomains,
|
|
b"maxMailingLists" => TenantStorageQuota::MaxMailingLists,
|
|
b"maxRoles" => TenantStorageQuota::MaxRoles,
|
|
b"maxOauthClients" => TenantStorageQuota::MaxOauthClients,
|
|
b"maxDkimKeys" => TenantStorageQuota::MaxDkimKeys,
|
|
b"maxDnsServers" => TenantStorageQuota::MaxDnsServers,
|
|
b"maxDirectories" => TenantStorageQuota::MaxDirectories,
|
|
b"maxAcmeProviders" => TenantStorageQuota::MaxAcmeProviders,
|
|
b"maxDiskQuota" => TenantStorageQuota::MaxDiskQuota,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TenantStorageQuota::MaxAccounts => "maxAccounts",
|
|
TenantStorageQuota::MaxGroups => "maxGroups",
|
|
TenantStorageQuota::MaxDomains => "maxDomains",
|
|
TenantStorageQuota::MaxMailingLists => "maxMailingLists",
|
|
TenantStorageQuota::MaxRoles => "maxRoles",
|
|
TenantStorageQuota::MaxOauthClients => "maxOauthClients",
|
|
TenantStorageQuota::MaxDkimKeys => "maxDkimKeys",
|
|
TenantStorageQuota::MaxDnsServers => "maxDnsServers",
|
|
TenantStorageQuota::MaxDirectories => "maxDirectories",
|
|
TenantStorageQuota::MaxAcmeProviders => "maxAcmeProviders",
|
|
TenantStorageQuota::MaxDiskQuota => "maxDiskQuota",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TenantStorageQuota::MaxAccounts),
|
|
1 => Some(TenantStorageQuota::MaxGroups),
|
|
2 => Some(TenantStorageQuota::MaxDomains),
|
|
3 => Some(TenantStorageQuota::MaxMailingLists),
|
|
4 => Some(TenantStorageQuota::MaxRoles),
|
|
5 => Some(TenantStorageQuota::MaxOauthClients),
|
|
6 => Some(TenantStorageQuota::MaxDkimKeys),
|
|
7 => Some(TenantStorageQuota::MaxDnsServers),
|
|
8 => Some(TenantStorageQuota::MaxDirectories),
|
|
9 => Some(TenantStorageQuota::MaxAcmeProviders),
|
|
10 => Some(TenantStorageQuota::MaxDiskQuota),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 11;
|
|
}
|
|
|
|
impl serde::Serialize for TenantStorageQuota {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TenantStorageQuota {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TimeZone {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::map! {
|
|
value.as_bytes(),
|
|
TimeZone,
|
|
b"Africa/Abidjan" => TimeZone::AfricaAbidjan,
|
|
b"Africa/Accra" => TimeZone::AfricaAccra,
|
|
b"Africa/Addis_Ababa" => TimeZone::AfricaAddisAbaba,
|
|
b"Africa/Algiers" => TimeZone::AfricaAlgiers,
|
|
b"Africa/Asmara" => TimeZone::AfricaAsmara,
|
|
b"Africa/Asmera" => TimeZone::AfricaAsmera,
|
|
b"Africa/Bamako" => TimeZone::AfricaBamako,
|
|
b"Africa/Bangui" => TimeZone::AfricaBangui,
|
|
b"Africa/Banjul" => TimeZone::AfricaBanjul,
|
|
b"Africa/Bissau" => TimeZone::AfricaBissau,
|
|
b"Africa/Blantyre" => TimeZone::AfricaBlantyre,
|
|
b"Africa/Brazzaville" => TimeZone::AfricaBrazzaville,
|
|
b"Africa/Bujumbura" => TimeZone::AfricaBujumbura,
|
|
b"Africa/Cairo" => TimeZone::AfricaCairo,
|
|
b"Africa/Casablanca" => TimeZone::AfricaCasablanca,
|
|
b"Africa/Ceuta" => TimeZone::AfricaCeuta,
|
|
b"Africa/Conakry" => TimeZone::AfricaConakry,
|
|
b"Africa/Dakar" => TimeZone::AfricaDakar,
|
|
b"Africa/Dar_es_Salaam" => TimeZone::AfricaDarEsSalaam,
|
|
b"Africa/Djibouti" => TimeZone::AfricaDjibouti,
|
|
b"Africa/Douala" => TimeZone::AfricaDouala,
|
|
b"Africa/El_Aaiun" => TimeZone::AfricaElAaiun,
|
|
b"Africa/Freetown" => TimeZone::AfricaFreetown,
|
|
b"Africa/Gaborone" => TimeZone::AfricaGaborone,
|
|
b"Africa/Harare" => TimeZone::AfricaHarare,
|
|
b"Africa/Johannesburg" => TimeZone::AfricaJohannesburg,
|
|
b"Africa/Juba" => TimeZone::AfricaJuba,
|
|
b"Africa/Kampala" => TimeZone::AfricaKampala,
|
|
b"Africa/Khartoum" => TimeZone::AfricaKhartoum,
|
|
b"Africa/Kigali" => TimeZone::AfricaKigali,
|
|
b"Africa/Kinshasa" => TimeZone::AfricaKinshasa,
|
|
b"Africa/Lagos" => TimeZone::AfricaLagos,
|
|
b"Africa/Libreville" => TimeZone::AfricaLibreville,
|
|
b"Africa/Lome" => TimeZone::AfricaLome,
|
|
b"Africa/Luanda" => TimeZone::AfricaLuanda,
|
|
b"Africa/Lubumbashi" => TimeZone::AfricaLubumbashi,
|
|
b"Africa/Lusaka" => TimeZone::AfricaLusaka,
|
|
b"Africa/Malabo" => TimeZone::AfricaMalabo,
|
|
b"Africa/Maputo" => TimeZone::AfricaMaputo,
|
|
b"Africa/Maseru" => TimeZone::AfricaMaseru,
|
|
b"Africa/Mbabane" => TimeZone::AfricaMbabane,
|
|
b"Africa/Mogadishu" => TimeZone::AfricaMogadishu,
|
|
b"Africa/Monrovia" => TimeZone::AfricaMonrovia,
|
|
b"Africa/Nairobi" => TimeZone::AfricaNairobi,
|
|
b"Africa/Ndjamena" => TimeZone::AfricaNdjamena,
|
|
b"Africa/Niamey" => TimeZone::AfricaNiamey,
|
|
b"Africa/Nouakchott" => TimeZone::AfricaNouakchott,
|
|
b"Africa/Ouagadougou" => TimeZone::AfricaOuagadougou,
|
|
b"Africa/Porto-Novo" => TimeZone::AfricaPortoNovo,
|
|
b"Africa/Sao_Tome" => TimeZone::AfricaSaoTome,
|
|
b"Africa/Timbuktu" => TimeZone::AfricaTimbuktu,
|
|
b"Africa/Tripoli" => TimeZone::AfricaTripoli,
|
|
b"Africa/Tunis" => TimeZone::AfricaTunis,
|
|
b"Africa/Windhoek" => TimeZone::AfricaWindhoek,
|
|
b"America/Adak" => TimeZone::AmericaAdak,
|
|
b"America/Anchorage" => TimeZone::AmericaAnchorage,
|
|
b"America/Anguilla" => TimeZone::AmericaAnguilla,
|
|
b"America/Antigua" => TimeZone::AmericaAntigua,
|
|
b"America/Araguaina" => TimeZone::AmericaAraguaina,
|
|
b"America/Argentina/Buenos_Aires" => TimeZone::AmericaArgentinaBuenosAires,
|
|
b"America/Argentina/Catamarca" => TimeZone::AmericaArgentinaCatamarca,
|
|
b"America/Argentina/ComodRivadavia" => TimeZone::AmericaArgentinaComodRivadavia,
|
|
b"America/Argentina/Cordoba" => TimeZone::AmericaArgentinaCordoba,
|
|
b"America/Argentina/Jujuy" => TimeZone::AmericaArgentinaJujuy,
|
|
b"America/Argentina/La_Rioja" => TimeZone::AmericaArgentinaLaRioja,
|
|
b"America/Argentina/Mendoza" => TimeZone::AmericaArgentinaMendoza,
|
|
b"America/Argentina/Rio_Gallegos" => TimeZone::AmericaArgentinaRioGallegos,
|
|
b"America/Argentina/Salta" => TimeZone::AmericaArgentinaSalta,
|
|
b"America/Argentina/San_Juan" => TimeZone::AmericaArgentinaSanJuan,
|
|
b"America/Argentina/San_Luis" => TimeZone::AmericaArgentinaSanLuis,
|
|
b"America/Argentina/Tucuman" => TimeZone::AmericaArgentinaTucuman,
|
|
b"America/Argentina/Ushuaia" => TimeZone::AmericaArgentinaUshuaia,
|
|
b"America/Aruba" => TimeZone::AmericaAruba,
|
|
b"America/Asuncion" => TimeZone::AmericaAsuncion,
|
|
b"America/Atikokan" => TimeZone::AmericaAtikokan,
|
|
b"America/Atka" => TimeZone::AmericaAtka,
|
|
b"America/Bahia" => TimeZone::AmericaBahia,
|
|
b"America/Bahia_Banderas" => TimeZone::AmericaBahiaBanderas,
|
|
b"America/Barbados" => TimeZone::AmericaBarbados,
|
|
b"America/Belem" => TimeZone::AmericaBelem,
|
|
b"America/Belize" => TimeZone::AmericaBelize,
|
|
b"America/Blanc-Sablon" => TimeZone::AmericaBlancSablon,
|
|
b"America/Boa_Vista" => TimeZone::AmericaBoaVista,
|
|
b"America/Bogota" => TimeZone::AmericaBogota,
|
|
b"America/Boise" => TimeZone::AmericaBoise,
|
|
b"America/Buenos_Aires" => TimeZone::AmericaBuenosAires,
|
|
b"America/Cambridge_Bay" => TimeZone::AmericaCambridgeBay,
|
|
b"America/Campo_Grande" => TimeZone::AmericaCampoGrande,
|
|
b"America/Cancun" => TimeZone::AmericaCancun,
|
|
b"America/Caracas" => TimeZone::AmericaCaracas,
|
|
b"America/Catamarca" => TimeZone::AmericaCatamarca,
|
|
b"America/Cayenne" => TimeZone::AmericaCayenne,
|
|
b"America/Cayman" => TimeZone::AmericaCayman,
|
|
b"America/Chicago" => TimeZone::AmericaChicago,
|
|
b"America/Chihuahua" => TimeZone::AmericaChihuahua,
|
|
b"America/Ciudad_Juarez" => TimeZone::AmericaCiudadJuarez,
|
|
b"America/Coral_Harbour" => TimeZone::AmericaCoralHarbour,
|
|
b"America/Cordoba" => TimeZone::AmericaCordoba,
|
|
b"America/Costa_Rica" => TimeZone::AmericaCostaRica,
|
|
b"America/Coyhaique" => TimeZone::AmericaCoyhaique,
|
|
b"America/Creston" => TimeZone::AmericaCreston,
|
|
b"America/Cuiaba" => TimeZone::AmericaCuiaba,
|
|
b"America/Curacao" => TimeZone::AmericaCuracao,
|
|
b"America/Danmarkshavn" => TimeZone::AmericaDanmarkshavn,
|
|
b"America/Dawson" => TimeZone::AmericaDawson,
|
|
b"America/Dawson_Creek" => TimeZone::AmericaDawsonCreek,
|
|
b"America/Denver" => TimeZone::AmericaDenver,
|
|
b"America/Detroit" => TimeZone::AmericaDetroit,
|
|
b"America/Dominica" => TimeZone::AmericaDominica,
|
|
b"America/Edmonton" => TimeZone::AmericaEdmonton,
|
|
b"America/Eirunepe" => TimeZone::AmericaEirunepe,
|
|
b"America/El_Salvador" => TimeZone::AmericaElSalvador,
|
|
b"America/Ensenada" => TimeZone::AmericaEnsenada,
|
|
b"America/Fort_Nelson" => TimeZone::AmericaFortNelson,
|
|
b"America/Fort_Wayne" => TimeZone::AmericaFortWayne,
|
|
b"America/Fortaleza" => TimeZone::AmericaFortaleza,
|
|
b"America/Glace_Bay" => TimeZone::AmericaGlaceBay,
|
|
b"America/Godthab" => TimeZone::AmericaGodthab,
|
|
b"America/Goose_Bay" => TimeZone::AmericaGooseBay,
|
|
b"America/Grand_Turk" => TimeZone::AmericaGrandTurk,
|
|
b"America/Grenada" => TimeZone::AmericaGrenada,
|
|
b"America/Guadeloupe" => TimeZone::AmericaGuadeloupe,
|
|
b"America/Guatemala" => TimeZone::AmericaGuatemala,
|
|
b"America/Guayaquil" => TimeZone::AmericaGuayaquil,
|
|
b"America/Guyana" => TimeZone::AmericaGuyana,
|
|
b"America/Halifax" => TimeZone::AmericaHalifax,
|
|
b"America/Havana" => TimeZone::AmericaHavana,
|
|
b"America/Hermosillo" => TimeZone::AmericaHermosillo,
|
|
b"America/Indiana/Indianapolis" => TimeZone::AmericaIndianaIndianapolis,
|
|
b"America/Indiana/Knox" => TimeZone::AmericaIndianaKnox,
|
|
b"America/Indiana/Marengo" => TimeZone::AmericaIndianaMarengo,
|
|
b"America/Indiana/Petersburg" => TimeZone::AmericaIndianaPetersburg,
|
|
b"America/Indiana/Tell_City" => TimeZone::AmericaIndianaTellCity,
|
|
b"America/Indiana/Vevay" => TimeZone::AmericaIndianaVevay,
|
|
b"America/Indiana/Vincennes" => TimeZone::AmericaIndianaVincennes,
|
|
b"America/Indiana/Winamac" => TimeZone::AmericaIndianaWinamac,
|
|
b"America/Indianapolis" => TimeZone::AmericaIndianapolis,
|
|
b"America/Inuvik" => TimeZone::AmericaInuvik,
|
|
b"America/Iqaluit" => TimeZone::AmericaIqaluit,
|
|
b"America/Jamaica" => TimeZone::AmericaJamaica,
|
|
b"America/Jujuy" => TimeZone::AmericaJujuy,
|
|
b"America/Juneau" => TimeZone::AmericaJuneau,
|
|
b"America/Kentucky/Louisville" => TimeZone::AmericaKentuckyLouisville,
|
|
b"America/Kentucky/Monticello" => TimeZone::AmericaKentuckyMonticello,
|
|
b"America/Knox_IN" => TimeZone::AmericaKnoxIN,
|
|
b"America/Kralendijk" => TimeZone::AmericaKralendijk,
|
|
b"America/La_Paz" => TimeZone::AmericaLaPaz,
|
|
b"America/Lima" => TimeZone::AmericaLima,
|
|
b"America/Los_Angeles" => TimeZone::AmericaLosAngeles,
|
|
b"America/Louisville" => TimeZone::AmericaLouisville,
|
|
b"America/Lower_Princes" => TimeZone::AmericaLowerPrinces,
|
|
b"America/Maceio" => TimeZone::AmericaMaceio,
|
|
b"America/Managua" => TimeZone::AmericaManagua,
|
|
b"America/Manaus" => TimeZone::AmericaManaus,
|
|
b"America/Marigot" => TimeZone::AmericaMarigot,
|
|
b"America/Martinique" => TimeZone::AmericaMartinique,
|
|
b"America/Matamoros" => TimeZone::AmericaMatamoros,
|
|
b"America/Mazatlan" => TimeZone::AmericaMazatlan,
|
|
b"America/Mendoza" => TimeZone::AmericaMendoza,
|
|
b"America/Menominee" => TimeZone::AmericaMenominee,
|
|
b"America/Merida" => TimeZone::AmericaMerida,
|
|
b"America/Metlakatla" => TimeZone::AmericaMetlakatla,
|
|
b"America/Mexico_City" => TimeZone::AmericaMexicoCity,
|
|
b"America/Miquelon" => TimeZone::AmericaMiquelon,
|
|
b"America/Moncton" => TimeZone::AmericaMoncton,
|
|
b"America/Monterrey" => TimeZone::AmericaMonterrey,
|
|
b"America/Montevideo" => TimeZone::AmericaMontevideo,
|
|
b"America/Montreal" => TimeZone::AmericaMontreal,
|
|
b"America/Montserrat" => TimeZone::AmericaMontserrat,
|
|
b"America/Nassau" => TimeZone::AmericaNassau,
|
|
b"America/New_York" => TimeZone::AmericaNewYork,
|
|
b"America/Nipigon" => TimeZone::AmericaNipigon,
|
|
b"America/Nome" => TimeZone::AmericaNome,
|
|
b"America/Noronha" => TimeZone::AmericaNoronha,
|
|
b"America/North_Dakota/Beulah" => TimeZone::AmericaNorthDakotaBeulah,
|
|
b"America/North_Dakota/Center" => TimeZone::AmericaNorthDakotaCenter,
|
|
b"America/North_Dakota/New_Salem" => TimeZone::AmericaNorthDakotaNewSalem,
|
|
b"America/Nuuk" => TimeZone::AmericaNuuk,
|
|
b"America/Ojinaga" => TimeZone::AmericaOjinaga,
|
|
b"America/Panama" => TimeZone::AmericaPanama,
|
|
b"America/Pangnirtung" => TimeZone::AmericaPangnirtung,
|
|
b"America/Paramaribo" => TimeZone::AmericaParamaribo,
|
|
b"America/Phoenix" => TimeZone::AmericaPhoenix,
|
|
b"America/Port-au-Prince" => TimeZone::AmericaPortAuPrince,
|
|
b"America/Port_of_Spain" => TimeZone::AmericaPortOfSpain,
|
|
b"America/Porto_Acre" => TimeZone::AmericaPortoAcre,
|
|
b"America/Porto_Velho" => TimeZone::AmericaPortoVelho,
|
|
b"America/Puerto_Rico" => TimeZone::AmericaPuertoRico,
|
|
b"America/Punta_Arenas" => TimeZone::AmericaPuntaArenas,
|
|
b"America/Rainy_River" => TimeZone::AmericaRainyRiver,
|
|
b"America/Rankin_Inlet" => TimeZone::AmericaRankinInlet,
|
|
b"America/Recife" => TimeZone::AmericaRecife,
|
|
b"America/Regina" => TimeZone::AmericaRegina,
|
|
b"America/Resolute" => TimeZone::AmericaResolute,
|
|
b"America/Rio_Branco" => TimeZone::AmericaRioBranco,
|
|
b"America/Rosario" => TimeZone::AmericaRosario,
|
|
b"America/Santa_Isabel" => TimeZone::AmericaSantaIsabel,
|
|
b"America/Santarem" => TimeZone::AmericaSantarem,
|
|
b"America/Santiago" => TimeZone::AmericaSantiago,
|
|
b"America/Santo_Domingo" => TimeZone::AmericaSantoDomingo,
|
|
b"America/Sao_Paulo" => TimeZone::AmericaSaoPaulo,
|
|
b"America/Scoresbysund" => TimeZone::AmericaScoresbysund,
|
|
b"America/Shiprock" => TimeZone::AmericaShiprock,
|
|
b"America/Sitka" => TimeZone::AmericaSitka,
|
|
b"America/St_Barthelemy" => TimeZone::AmericaStBarthelemy,
|
|
b"America/St_Johns" => TimeZone::AmericaStJohns,
|
|
b"America/St_Kitts" => TimeZone::AmericaStKitts,
|
|
b"America/St_Lucia" => TimeZone::AmericaStLucia,
|
|
b"America/St_Thomas" => TimeZone::AmericaStThomas,
|
|
b"America/St_Vincent" => TimeZone::AmericaStVincent,
|
|
b"America/Swift_Current" => TimeZone::AmericaSwiftCurrent,
|
|
b"America/Tegucigalpa" => TimeZone::AmericaTegucigalpa,
|
|
b"America/Thule" => TimeZone::AmericaThule,
|
|
b"America/Thunder_Bay" => TimeZone::AmericaThunderBay,
|
|
b"America/Tijuana" => TimeZone::AmericaTijuana,
|
|
b"America/Toronto" => TimeZone::AmericaToronto,
|
|
b"America/Tortola" => TimeZone::AmericaTortola,
|
|
b"America/Vancouver" => TimeZone::AmericaVancouver,
|
|
b"America/Virgin" => TimeZone::AmericaVirgin,
|
|
b"America/Whitehorse" => TimeZone::AmericaWhitehorse,
|
|
b"America/Winnipeg" => TimeZone::AmericaWinnipeg,
|
|
b"America/Yakutat" => TimeZone::AmericaYakutat,
|
|
b"America/Yellowknife" => TimeZone::AmericaYellowknife,
|
|
b"Antarctica/Casey" => TimeZone::AntarcticaCasey,
|
|
b"Antarctica/Davis" => TimeZone::AntarcticaDavis,
|
|
b"Antarctica/DumontDUrville" => TimeZone::AntarcticaDumontDUrville,
|
|
b"Antarctica/Macquarie" => TimeZone::AntarcticaMacquarie,
|
|
b"Antarctica/Mawson" => TimeZone::AntarcticaMawson,
|
|
b"Antarctica/McMurdo" => TimeZone::AntarcticaMcMurdo,
|
|
b"Antarctica/Palmer" => TimeZone::AntarcticaPalmer,
|
|
b"Antarctica/Rothera" => TimeZone::AntarcticaRothera,
|
|
b"Antarctica/South_Pole" => TimeZone::AntarcticaSouthPole,
|
|
b"Antarctica/Syowa" => TimeZone::AntarcticaSyowa,
|
|
b"Antarctica/Troll" => TimeZone::AntarcticaTroll,
|
|
b"Antarctica/Vostok" => TimeZone::AntarcticaVostok,
|
|
b"Arctic/Longyearbyen" => TimeZone::ArcticLongyearbyen,
|
|
b"Asia/Aden" => TimeZone::AsiaAden,
|
|
b"Asia/Almaty" => TimeZone::AsiaAlmaty,
|
|
b"Asia/Amman" => TimeZone::AsiaAmman,
|
|
b"Asia/Anadyr" => TimeZone::AsiaAnadyr,
|
|
b"Asia/Aqtau" => TimeZone::AsiaAqtau,
|
|
b"Asia/Aqtobe" => TimeZone::AsiaAqtobe,
|
|
b"Asia/Ashgabat" => TimeZone::AsiaAshgabat,
|
|
b"Asia/Ashkhabad" => TimeZone::AsiaAshkhabad,
|
|
b"Asia/Atyrau" => TimeZone::AsiaAtyrau,
|
|
b"Asia/Baghdad" => TimeZone::AsiaBaghdad,
|
|
b"Asia/Bahrain" => TimeZone::AsiaBahrain,
|
|
b"Asia/Baku" => TimeZone::AsiaBaku,
|
|
b"Asia/Bangkok" => TimeZone::AsiaBangkok,
|
|
b"Asia/Barnaul" => TimeZone::AsiaBarnaul,
|
|
b"Asia/Beirut" => TimeZone::AsiaBeirut,
|
|
b"Asia/Bishkek" => TimeZone::AsiaBishkek,
|
|
b"Asia/Brunei" => TimeZone::AsiaBrunei,
|
|
b"Asia/Calcutta" => TimeZone::AsiaCalcutta,
|
|
b"Asia/Chita" => TimeZone::AsiaChita,
|
|
b"Asia/Choibalsan" => TimeZone::AsiaChoibalsan,
|
|
b"Asia/Chongqing" => TimeZone::AsiaChongqing,
|
|
b"Asia/Chungking" => TimeZone::AsiaChungking,
|
|
b"Asia/Colombo" => TimeZone::AsiaColombo,
|
|
b"Asia/Dacca" => TimeZone::AsiaDacca,
|
|
b"Asia/Damascus" => TimeZone::AsiaDamascus,
|
|
b"Asia/Dhaka" => TimeZone::AsiaDhaka,
|
|
b"Asia/Dili" => TimeZone::AsiaDili,
|
|
b"Asia/Dubai" => TimeZone::AsiaDubai,
|
|
b"Asia/Dushanbe" => TimeZone::AsiaDushanbe,
|
|
b"Asia/Famagusta" => TimeZone::AsiaFamagusta,
|
|
b"Asia/Gaza" => TimeZone::AsiaGaza,
|
|
b"Asia/Harbin" => TimeZone::AsiaHarbin,
|
|
b"Asia/Hebron" => TimeZone::AsiaHebron,
|
|
b"Asia/Ho_Chi_Minh" => TimeZone::AsiaHoChiMinh,
|
|
b"Asia/Hong_Kong" => TimeZone::AsiaHongKong,
|
|
b"Asia/Hovd" => TimeZone::AsiaHovd,
|
|
b"Asia/Irkutsk" => TimeZone::AsiaIrkutsk,
|
|
b"Asia/Istanbul" => TimeZone::AsiaIstanbul,
|
|
b"Asia/Jakarta" => TimeZone::AsiaJakarta,
|
|
b"Asia/Jayapura" => TimeZone::AsiaJayapura,
|
|
b"Asia/Jerusalem" => TimeZone::AsiaJerusalem,
|
|
b"Asia/Kabul" => TimeZone::AsiaKabul,
|
|
b"Asia/Kamchatka" => TimeZone::AsiaKamchatka,
|
|
b"Asia/Karachi" => TimeZone::AsiaKarachi,
|
|
b"Asia/Kashgar" => TimeZone::AsiaKashgar,
|
|
b"Asia/Kathmandu" => TimeZone::AsiaKathmandu,
|
|
b"Asia/Katmandu" => TimeZone::AsiaKatmandu,
|
|
b"Asia/Khandyga" => TimeZone::AsiaKhandyga,
|
|
b"Asia/Kolkata" => TimeZone::AsiaKolkata,
|
|
b"Asia/Krasnoyarsk" => TimeZone::AsiaKrasnoyarsk,
|
|
b"Asia/Kuala_Lumpur" => TimeZone::AsiaKualaLumpur,
|
|
b"Asia/Kuching" => TimeZone::AsiaKuching,
|
|
b"Asia/Kuwait" => TimeZone::AsiaKuwait,
|
|
b"Asia/Macao" => TimeZone::AsiaMacao,
|
|
b"Asia/Macau" => TimeZone::AsiaMacau,
|
|
b"Asia/Magadan" => TimeZone::AsiaMagadan,
|
|
b"Asia/Makassar" => TimeZone::AsiaMakassar,
|
|
b"Asia/Manila" => TimeZone::AsiaManila,
|
|
b"Asia/Muscat" => TimeZone::AsiaMuscat,
|
|
b"Asia/Nicosia" => TimeZone::AsiaNicosia,
|
|
b"Asia/Novokuznetsk" => TimeZone::AsiaNovokuznetsk,
|
|
b"Asia/Novosibirsk" => TimeZone::AsiaNovosibirsk,
|
|
b"Asia/Omsk" => TimeZone::AsiaOmsk,
|
|
b"Asia/Oral" => TimeZone::AsiaOral,
|
|
b"Asia/Phnom_Penh" => TimeZone::AsiaPhnomPenh,
|
|
b"Asia/Pontianak" => TimeZone::AsiaPontianak,
|
|
b"Asia/Pyongyang" => TimeZone::AsiaPyongyang,
|
|
b"Asia/Qatar" => TimeZone::AsiaQatar,
|
|
b"Asia/Qostanay" => TimeZone::AsiaQostanay,
|
|
b"Asia/Qyzylorda" => TimeZone::AsiaQyzylorda,
|
|
b"Asia/Rangoon" => TimeZone::AsiaRangoon,
|
|
b"Asia/Riyadh" => TimeZone::AsiaRiyadh,
|
|
b"Asia/Saigon" => TimeZone::AsiaSaigon,
|
|
b"Asia/Sakhalin" => TimeZone::AsiaSakhalin,
|
|
b"Asia/Samarkand" => TimeZone::AsiaSamarkand,
|
|
b"Asia/Seoul" => TimeZone::AsiaSeoul,
|
|
b"Asia/Shanghai" => TimeZone::AsiaShanghai,
|
|
b"Asia/Singapore" => TimeZone::AsiaSingapore,
|
|
b"Asia/Srednekolymsk" => TimeZone::AsiaSrednekolymsk,
|
|
b"Asia/Taipei" => TimeZone::AsiaTaipei,
|
|
b"Asia/Tashkent" => TimeZone::AsiaTashkent,
|
|
b"Asia/Tbilisi" => TimeZone::AsiaTbilisi,
|
|
b"Asia/Tehran" => TimeZone::AsiaTehran,
|
|
b"Asia/Tel_Aviv" => TimeZone::AsiaTelAviv,
|
|
b"Asia/Thimbu" => TimeZone::AsiaThimbu,
|
|
b"Asia/Thimphu" => TimeZone::AsiaThimphu,
|
|
b"Asia/Tokyo" => TimeZone::AsiaTokyo,
|
|
b"Asia/Tomsk" => TimeZone::AsiaTomsk,
|
|
b"Asia/Ujung_Pandang" => TimeZone::AsiaUjungPandang,
|
|
b"Asia/Ulaanbaatar" => TimeZone::AsiaUlaanbaatar,
|
|
b"Asia/Ulan_Bator" => TimeZone::AsiaUlanBator,
|
|
b"Asia/Urumqi" => TimeZone::AsiaUrumqi,
|
|
b"Asia/Ust-Nera" => TimeZone::AsiaUstNera,
|
|
b"Asia/Vientiane" => TimeZone::AsiaVientiane,
|
|
b"Asia/Vladivostok" => TimeZone::AsiaVladivostok,
|
|
b"Asia/Yakutsk" => TimeZone::AsiaYakutsk,
|
|
b"Asia/Yangon" => TimeZone::AsiaYangon,
|
|
b"Asia/Yekaterinburg" => TimeZone::AsiaYekaterinburg,
|
|
b"Asia/Yerevan" => TimeZone::AsiaYerevan,
|
|
b"Atlantic/Azores" => TimeZone::AtlanticAzores,
|
|
b"Atlantic/Bermuda" => TimeZone::AtlanticBermuda,
|
|
b"Atlantic/Canary" => TimeZone::AtlanticCanary,
|
|
b"Atlantic/Cape_Verde" => TimeZone::AtlanticCapeVerde,
|
|
b"Atlantic/Faeroe" => TimeZone::AtlanticFaeroe,
|
|
b"Atlantic/Faroe" => TimeZone::AtlanticFaroe,
|
|
b"Atlantic/Jan_Mayen" => TimeZone::AtlanticJanMayen,
|
|
b"Atlantic/Madeira" => TimeZone::AtlanticMadeira,
|
|
b"Atlantic/Reykjavik" => TimeZone::AtlanticReykjavik,
|
|
b"Atlantic/South_Georgia" => TimeZone::AtlanticSouthGeorgia,
|
|
b"Atlantic/St_Helena" => TimeZone::AtlanticStHelena,
|
|
b"Atlantic/Stanley" => TimeZone::AtlanticStanley,
|
|
b"Australia/ACT" => TimeZone::AustraliaACT,
|
|
b"Australia/Adelaide" => TimeZone::AustraliaAdelaide,
|
|
b"Australia/Brisbane" => TimeZone::AustraliaBrisbane,
|
|
b"Australia/Broken_Hill" => TimeZone::AustraliaBrokenHill,
|
|
b"Australia/Canberra" => TimeZone::AustraliaCanberra,
|
|
b"Australia/Currie" => TimeZone::AustraliaCurrie,
|
|
b"Australia/Darwin" => TimeZone::AustraliaDarwin,
|
|
b"Australia/Eucla" => TimeZone::AustraliaEucla,
|
|
b"Australia/Hobart" => TimeZone::AustraliaHobart,
|
|
b"Australia/LHI" => TimeZone::AustraliaLHI,
|
|
b"Australia/Lindeman" => TimeZone::AustraliaLindeman,
|
|
b"Australia/Lord_Howe" => TimeZone::AustraliaLordHowe,
|
|
b"Australia/Melbourne" => TimeZone::AustraliaMelbourne,
|
|
b"Australia/NSW" => TimeZone::AustraliaNSW,
|
|
b"Australia/North" => TimeZone::AustraliaNorth,
|
|
b"Australia/Perth" => TimeZone::AustraliaPerth,
|
|
b"Australia/Queensland" => TimeZone::AustraliaQueensland,
|
|
b"Australia/South" => TimeZone::AustraliaSouth,
|
|
b"Australia/Sydney" => TimeZone::AustraliaSydney,
|
|
b"Australia/Tasmania" => TimeZone::AustraliaTasmania,
|
|
b"Australia/Victoria" => TimeZone::AustraliaVictoria,
|
|
b"Australia/West" => TimeZone::AustraliaWest,
|
|
b"Australia/Yancowinna" => TimeZone::AustraliaYancowinna,
|
|
b"Brazil/Acre" => TimeZone::BrazilAcre,
|
|
b"Brazil/DeNoronha" => TimeZone::BrazilDeNoronha,
|
|
b"Brazil/East" => TimeZone::BrazilEast,
|
|
b"Brazil/West" => TimeZone::BrazilWest,
|
|
b"CET" => TimeZone::CET,
|
|
b"CST6CDT" => TimeZone::CST6CDT,
|
|
b"Canada/Atlantic" => TimeZone::CanadaAtlantic,
|
|
b"Canada/Central" => TimeZone::CanadaCentral,
|
|
b"Canada/Eastern" => TimeZone::CanadaEastern,
|
|
b"Canada/Mountain" => TimeZone::CanadaMountain,
|
|
b"Canada/Newfoundland" => TimeZone::CanadaNewfoundland,
|
|
b"Canada/Pacific" => TimeZone::CanadaPacific,
|
|
b"Canada/Saskatchewan" => TimeZone::CanadaSaskatchewan,
|
|
b"Canada/Yukon" => TimeZone::CanadaYukon,
|
|
b"Chile/Continental" => TimeZone::ChileContinental,
|
|
b"Chile/EasterIsland" => TimeZone::ChileEasterIsland,
|
|
b"Cuba" => TimeZone::Cuba,
|
|
b"EET" => TimeZone::EET,
|
|
b"EST" => TimeZone::EST,
|
|
b"EST5EDT" => TimeZone::EST5EDT,
|
|
b"Egypt" => TimeZone::Egypt,
|
|
b"Eire" => TimeZone::Eire,
|
|
b"Etc/GMT" => TimeZone::EtcGMT,
|
|
b"Etc/GMT+0" => TimeZone::EtcGMTPlus0,
|
|
b"Etc/GMT+1" => TimeZone::EtcGMTPlus1,
|
|
b"Etc/GMT+10" => TimeZone::EtcGMTPlus10,
|
|
b"Etc/GMT+11" => TimeZone::EtcGMTPlus11,
|
|
b"Etc/GMT+12" => TimeZone::EtcGMTPlus12,
|
|
b"Etc/GMT+2" => TimeZone::EtcGMTPlus2,
|
|
b"Etc/GMT+3" => TimeZone::EtcGMTPlus3,
|
|
b"Etc/GMT+4" => TimeZone::EtcGMTPlus4,
|
|
b"Etc/GMT+5" => TimeZone::EtcGMTPlus5,
|
|
b"Etc/GMT+6" => TimeZone::EtcGMTPlus6,
|
|
b"Etc/GMT+7" => TimeZone::EtcGMTPlus7,
|
|
b"Etc/GMT+8" => TimeZone::EtcGMTPlus8,
|
|
b"Etc/GMT+9" => TimeZone::EtcGMTPlus9,
|
|
b"Etc/GMT-0" => TimeZone::EtcGMTMinus0,
|
|
b"Etc/GMT-1" => TimeZone::EtcGMTMinus1,
|
|
b"Etc/GMT-10" => TimeZone::EtcGMTMinus10,
|
|
b"Etc/GMT-11" => TimeZone::EtcGMTMinus11,
|
|
b"Etc/GMT-12" => TimeZone::EtcGMTMinus12,
|
|
b"Etc/GMT-13" => TimeZone::EtcGMTMinus13,
|
|
b"Etc/GMT-14" => TimeZone::EtcGMTMinus14,
|
|
b"Etc/GMT-2" => TimeZone::EtcGMTMinus2,
|
|
b"Etc/GMT-3" => TimeZone::EtcGMTMinus3,
|
|
b"Etc/GMT-4" => TimeZone::EtcGMTMinus4,
|
|
b"Etc/GMT-5" => TimeZone::EtcGMTMinus5,
|
|
b"Etc/GMT-6" => TimeZone::EtcGMTMinus6,
|
|
b"Etc/GMT-7" => TimeZone::EtcGMTMinus7,
|
|
b"Etc/GMT-8" => TimeZone::EtcGMTMinus8,
|
|
b"Etc/GMT-9" => TimeZone::EtcGMTMinus9,
|
|
b"Etc/GMT0" => TimeZone::EtcGMT0,
|
|
b"Etc/Greenwich" => TimeZone::EtcGreenwich,
|
|
b"Etc/UCT" => TimeZone::EtcUCT,
|
|
b"Etc/UTC" => TimeZone::EtcUTC,
|
|
b"Etc/Universal" => TimeZone::EtcUniversal,
|
|
b"Etc/Zulu" => TimeZone::EtcZulu,
|
|
b"Europe/Amsterdam" => TimeZone::EuropeAmsterdam,
|
|
b"Europe/Andorra" => TimeZone::EuropeAndorra,
|
|
b"Europe/Astrakhan" => TimeZone::EuropeAstrakhan,
|
|
b"Europe/Athens" => TimeZone::EuropeAthens,
|
|
b"Europe/Belfast" => TimeZone::EuropeBelfast,
|
|
b"Europe/Belgrade" => TimeZone::EuropeBelgrade,
|
|
b"Europe/Berlin" => TimeZone::EuropeBerlin,
|
|
b"Europe/Bratislava" => TimeZone::EuropeBratislava,
|
|
b"Europe/Brussels" => TimeZone::EuropeBrussels,
|
|
b"Europe/Bucharest" => TimeZone::EuropeBucharest,
|
|
b"Europe/Budapest" => TimeZone::EuropeBudapest,
|
|
b"Europe/Busingen" => TimeZone::EuropeBusingen,
|
|
b"Europe/Chisinau" => TimeZone::EuropeChisinau,
|
|
b"Europe/Copenhagen" => TimeZone::EuropeCopenhagen,
|
|
b"Europe/Dublin" => TimeZone::EuropeDublin,
|
|
b"Europe/Gibraltar" => TimeZone::EuropeGibraltar,
|
|
b"Europe/Guernsey" => TimeZone::EuropeGuernsey,
|
|
b"Europe/Helsinki" => TimeZone::EuropeHelsinki,
|
|
b"Europe/Isle_of_Man" => TimeZone::EuropeIsleOfMan,
|
|
b"Europe/Istanbul" => TimeZone::EuropeIstanbul,
|
|
b"Europe/Jersey" => TimeZone::EuropeJersey,
|
|
b"Europe/Kaliningrad" => TimeZone::EuropeKaliningrad,
|
|
b"Europe/Kiev" => TimeZone::EuropeKiev,
|
|
b"Europe/Kirov" => TimeZone::EuropeKirov,
|
|
b"Europe/Kyiv" => TimeZone::EuropeKyiv,
|
|
b"Europe/Lisbon" => TimeZone::EuropeLisbon,
|
|
b"Europe/Ljubljana" => TimeZone::EuropeLjubljana,
|
|
b"Europe/London" => TimeZone::EuropeLondon,
|
|
b"Europe/Luxembourg" => TimeZone::EuropeLuxembourg,
|
|
b"Europe/Madrid" => TimeZone::EuropeMadrid,
|
|
b"Europe/Malta" => TimeZone::EuropeMalta,
|
|
b"Europe/Mariehamn" => TimeZone::EuropeMariehamn,
|
|
b"Europe/Minsk" => TimeZone::EuropeMinsk,
|
|
b"Europe/Monaco" => TimeZone::EuropeMonaco,
|
|
b"Europe/Moscow" => TimeZone::EuropeMoscow,
|
|
b"Europe/Nicosia" => TimeZone::EuropeNicosia,
|
|
b"Europe/Oslo" => TimeZone::EuropeOslo,
|
|
b"Europe/Paris" => TimeZone::EuropeParis,
|
|
b"Europe/Podgorica" => TimeZone::EuropePodgorica,
|
|
b"Europe/Prague" => TimeZone::EuropePrague,
|
|
b"Europe/Riga" => TimeZone::EuropeRiga,
|
|
b"Europe/Rome" => TimeZone::EuropeRome,
|
|
b"Europe/Samara" => TimeZone::EuropeSamara,
|
|
b"Europe/San_Marino" => TimeZone::EuropeSanMarino,
|
|
b"Europe/Sarajevo" => TimeZone::EuropeSarajevo,
|
|
b"Europe/Saratov" => TimeZone::EuropeSaratov,
|
|
b"Europe/Simferopol" => TimeZone::EuropeSimferopol,
|
|
b"Europe/Skopje" => TimeZone::EuropeSkopje,
|
|
b"Europe/Sofia" => TimeZone::EuropeSofia,
|
|
b"Europe/Stockholm" => TimeZone::EuropeStockholm,
|
|
b"Europe/Tallinn" => TimeZone::EuropeTallinn,
|
|
b"Europe/Tirane" => TimeZone::EuropeTirane,
|
|
b"Europe/Tiraspol" => TimeZone::EuropeTiraspol,
|
|
b"Europe/Ulyanovsk" => TimeZone::EuropeUlyanovsk,
|
|
b"Europe/Uzhgorod" => TimeZone::EuropeUzhgorod,
|
|
b"Europe/Vaduz" => TimeZone::EuropeVaduz,
|
|
b"Europe/Vatican" => TimeZone::EuropeVatican,
|
|
b"Europe/Vienna" => TimeZone::EuropeVienna,
|
|
b"Europe/Vilnius" => TimeZone::EuropeVilnius,
|
|
b"Europe/Volgograd" => TimeZone::EuropeVolgograd,
|
|
b"Europe/Warsaw" => TimeZone::EuropeWarsaw,
|
|
b"Europe/Zagreb" => TimeZone::EuropeZagreb,
|
|
b"Europe/Zaporozhye" => TimeZone::EuropeZaporozhye,
|
|
b"Europe/Zurich" => TimeZone::EuropeZurich,
|
|
b"Factory" => TimeZone::Factory,
|
|
b"GB" => TimeZone::GB,
|
|
b"GB-Eire" => TimeZone::GBEire,
|
|
b"GMT" => TimeZone::GMT,
|
|
b"GMT+0" => TimeZone::GMTPlus0,
|
|
b"GMT-0" => TimeZone::GMTMinus0,
|
|
b"GMT0" => TimeZone::GMT0,
|
|
b"Greenwich" => TimeZone::Greenwich,
|
|
b"HST" => TimeZone::HST,
|
|
b"Hongkong" => TimeZone::Hongkong,
|
|
b"Iceland" => TimeZone::Iceland,
|
|
b"Indian/Antananarivo" => TimeZone::IndianAntananarivo,
|
|
b"Indian/Chagos" => TimeZone::IndianChagos,
|
|
b"Indian/Christmas" => TimeZone::IndianChristmas,
|
|
b"Indian/Cocos" => TimeZone::IndianCocos,
|
|
b"Indian/Comoro" => TimeZone::IndianComoro,
|
|
b"Indian/Kerguelen" => TimeZone::IndianKerguelen,
|
|
b"Indian/Mahe" => TimeZone::IndianMahe,
|
|
b"Indian/Maldives" => TimeZone::IndianMaldives,
|
|
b"Indian/Mauritius" => TimeZone::IndianMauritius,
|
|
b"Indian/Mayotte" => TimeZone::IndianMayotte,
|
|
b"Indian/Reunion" => TimeZone::IndianReunion,
|
|
b"Iran" => TimeZone::Iran,
|
|
b"Israel" => TimeZone::Israel,
|
|
b"Jamaica" => TimeZone::Jamaica,
|
|
b"Japan" => TimeZone::Japan,
|
|
b"Kwajalein" => TimeZone::Kwajalein,
|
|
b"Libya" => TimeZone::Libya,
|
|
b"MET" => TimeZone::MET,
|
|
b"MST" => TimeZone::MST,
|
|
b"MST7MDT" => TimeZone::MST7MDT,
|
|
b"Mexico/BajaNorte" => TimeZone::MexicoBajaNorte,
|
|
b"Mexico/BajaSur" => TimeZone::MexicoBajaSur,
|
|
b"Mexico/General" => TimeZone::MexicoGeneral,
|
|
b"NZ" => TimeZone::NZ,
|
|
b"NZ-CHAT" => TimeZone::NZCHAT,
|
|
b"Navajo" => TimeZone::Navajo,
|
|
b"PRC" => TimeZone::PRC,
|
|
b"PST8PDT" => TimeZone::PST8PDT,
|
|
b"Pacific/Apia" => TimeZone::PacificApia,
|
|
b"Pacific/Auckland" => TimeZone::PacificAuckland,
|
|
b"Pacific/Bougainville" => TimeZone::PacificBougainville,
|
|
b"Pacific/Chatham" => TimeZone::PacificChatham,
|
|
b"Pacific/Chuuk" => TimeZone::PacificChuuk,
|
|
b"Pacific/Easter" => TimeZone::PacificEaster,
|
|
b"Pacific/Efate" => TimeZone::PacificEfate,
|
|
b"Pacific/Enderbury" => TimeZone::PacificEnderbury,
|
|
b"Pacific/Fakaofo" => TimeZone::PacificFakaofo,
|
|
b"Pacific/Fiji" => TimeZone::PacificFiji,
|
|
b"Pacific/Funafuti" => TimeZone::PacificFunafuti,
|
|
b"Pacific/Galapagos" => TimeZone::PacificGalapagos,
|
|
b"Pacific/Gambier" => TimeZone::PacificGambier,
|
|
b"Pacific/Guadalcanal" => TimeZone::PacificGuadalcanal,
|
|
b"Pacific/Guam" => TimeZone::PacificGuam,
|
|
b"Pacific/Honolulu" => TimeZone::PacificHonolulu,
|
|
b"Pacific/Johnston" => TimeZone::PacificJohnston,
|
|
b"Pacific/Kanton" => TimeZone::PacificKanton,
|
|
b"Pacific/Kiritimati" => TimeZone::PacificKiritimati,
|
|
b"Pacific/Kosrae" => TimeZone::PacificKosrae,
|
|
b"Pacific/Kwajalein" => TimeZone::PacificKwajalein,
|
|
b"Pacific/Majuro" => TimeZone::PacificMajuro,
|
|
b"Pacific/Marquesas" => TimeZone::PacificMarquesas,
|
|
b"Pacific/Midway" => TimeZone::PacificMidway,
|
|
b"Pacific/Nauru" => TimeZone::PacificNauru,
|
|
b"Pacific/Niue" => TimeZone::PacificNiue,
|
|
b"Pacific/Norfolk" => TimeZone::PacificNorfolk,
|
|
b"Pacific/Noumea" => TimeZone::PacificNoumea,
|
|
b"Pacific/Pago_Pago" => TimeZone::PacificPagoPago,
|
|
b"Pacific/Palau" => TimeZone::PacificPalau,
|
|
b"Pacific/Pitcairn" => TimeZone::PacificPitcairn,
|
|
b"Pacific/Pohnpei" => TimeZone::PacificPohnpei,
|
|
b"Pacific/Ponape" => TimeZone::PacificPonape,
|
|
b"Pacific/Port_Moresby" => TimeZone::PacificPortMoresby,
|
|
b"Pacific/Rarotonga" => TimeZone::PacificRarotonga,
|
|
b"Pacific/Saipan" => TimeZone::PacificSaipan,
|
|
b"Pacific/Samoa" => TimeZone::PacificSamoa,
|
|
b"Pacific/Tahiti" => TimeZone::PacificTahiti,
|
|
b"Pacific/Tarawa" => TimeZone::PacificTarawa,
|
|
b"Pacific/Tongatapu" => TimeZone::PacificTongatapu,
|
|
b"Pacific/Truk" => TimeZone::PacificTruk,
|
|
b"Pacific/Wake" => TimeZone::PacificWake,
|
|
b"Pacific/Wallis" => TimeZone::PacificWallis,
|
|
b"Pacific/Yap" => TimeZone::PacificYap,
|
|
b"Poland" => TimeZone::Poland,
|
|
b"Portugal" => TimeZone::Portugal,
|
|
b"ROC" => TimeZone::ROC,
|
|
b"ROK" => TimeZone::ROK,
|
|
b"Singapore" => TimeZone::Singapore,
|
|
b"Turkey" => TimeZone::Turkey,
|
|
b"UCT" => TimeZone::UCT,
|
|
b"US/Alaska" => TimeZone::USAlaska,
|
|
b"US/Aleutian" => TimeZone::USAleutian,
|
|
b"US/Arizona" => TimeZone::USArizona,
|
|
b"US/Central" => TimeZone::USCentral,
|
|
b"US/East-Indiana" => TimeZone::USEastIndiana,
|
|
b"US/Eastern" => TimeZone::USEastern,
|
|
b"US/Hawaii" => TimeZone::USHawaii,
|
|
b"US/Indiana-Starke" => TimeZone::USIndianaStarke,
|
|
b"US/Michigan" => TimeZone::USMichigan,
|
|
b"US/Mountain" => TimeZone::USMountain,
|
|
b"US/Pacific" => TimeZone::USPacific,
|
|
b"US/Samoa" => TimeZone::USSamoa,
|
|
b"UTC" => TimeZone::UTC,
|
|
b"Universal" => TimeZone::Universal,
|
|
b"W-SU" => TimeZone::WSU,
|
|
b"WET" => TimeZone::WET,
|
|
b"Zulu" => TimeZone::Zulu,
|
|
}
|
|
.copied()
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TimeZone::AfricaAbidjan => "Africa/Abidjan",
|
|
TimeZone::AfricaAccra => "Africa/Accra",
|
|
TimeZone::AfricaAddisAbaba => "Africa/Addis_Ababa",
|
|
TimeZone::AfricaAlgiers => "Africa/Algiers",
|
|
TimeZone::AfricaAsmara => "Africa/Asmara",
|
|
TimeZone::AfricaAsmera => "Africa/Asmera",
|
|
TimeZone::AfricaBamako => "Africa/Bamako",
|
|
TimeZone::AfricaBangui => "Africa/Bangui",
|
|
TimeZone::AfricaBanjul => "Africa/Banjul",
|
|
TimeZone::AfricaBissau => "Africa/Bissau",
|
|
TimeZone::AfricaBlantyre => "Africa/Blantyre",
|
|
TimeZone::AfricaBrazzaville => "Africa/Brazzaville",
|
|
TimeZone::AfricaBujumbura => "Africa/Bujumbura",
|
|
TimeZone::AfricaCairo => "Africa/Cairo",
|
|
TimeZone::AfricaCasablanca => "Africa/Casablanca",
|
|
TimeZone::AfricaCeuta => "Africa/Ceuta",
|
|
TimeZone::AfricaConakry => "Africa/Conakry",
|
|
TimeZone::AfricaDakar => "Africa/Dakar",
|
|
TimeZone::AfricaDarEsSalaam => "Africa/Dar_es_Salaam",
|
|
TimeZone::AfricaDjibouti => "Africa/Djibouti",
|
|
TimeZone::AfricaDouala => "Africa/Douala",
|
|
TimeZone::AfricaElAaiun => "Africa/El_Aaiun",
|
|
TimeZone::AfricaFreetown => "Africa/Freetown",
|
|
TimeZone::AfricaGaborone => "Africa/Gaborone",
|
|
TimeZone::AfricaHarare => "Africa/Harare",
|
|
TimeZone::AfricaJohannesburg => "Africa/Johannesburg",
|
|
TimeZone::AfricaJuba => "Africa/Juba",
|
|
TimeZone::AfricaKampala => "Africa/Kampala",
|
|
TimeZone::AfricaKhartoum => "Africa/Khartoum",
|
|
TimeZone::AfricaKigali => "Africa/Kigali",
|
|
TimeZone::AfricaKinshasa => "Africa/Kinshasa",
|
|
TimeZone::AfricaLagos => "Africa/Lagos",
|
|
TimeZone::AfricaLibreville => "Africa/Libreville",
|
|
TimeZone::AfricaLome => "Africa/Lome",
|
|
TimeZone::AfricaLuanda => "Africa/Luanda",
|
|
TimeZone::AfricaLubumbashi => "Africa/Lubumbashi",
|
|
TimeZone::AfricaLusaka => "Africa/Lusaka",
|
|
TimeZone::AfricaMalabo => "Africa/Malabo",
|
|
TimeZone::AfricaMaputo => "Africa/Maputo",
|
|
TimeZone::AfricaMaseru => "Africa/Maseru",
|
|
TimeZone::AfricaMbabane => "Africa/Mbabane",
|
|
TimeZone::AfricaMogadishu => "Africa/Mogadishu",
|
|
TimeZone::AfricaMonrovia => "Africa/Monrovia",
|
|
TimeZone::AfricaNairobi => "Africa/Nairobi",
|
|
TimeZone::AfricaNdjamena => "Africa/Ndjamena",
|
|
TimeZone::AfricaNiamey => "Africa/Niamey",
|
|
TimeZone::AfricaNouakchott => "Africa/Nouakchott",
|
|
TimeZone::AfricaOuagadougou => "Africa/Ouagadougou",
|
|
TimeZone::AfricaPortoNovo => "Africa/Porto-Novo",
|
|
TimeZone::AfricaSaoTome => "Africa/Sao_Tome",
|
|
TimeZone::AfricaTimbuktu => "Africa/Timbuktu",
|
|
TimeZone::AfricaTripoli => "Africa/Tripoli",
|
|
TimeZone::AfricaTunis => "Africa/Tunis",
|
|
TimeZone::AfricaWindhoek => "Africa/Windhoek",
|
|
TimeZone::AmericaAdak => "America/Adak",
|
|
TimeZone::AmericaAnchorage => "America/Anchorage",
|
|
TimeZone::AmericaAnguilla => "America/Anguilla",
|
|
TimeZone::AmericaAntigua => "America/Antigua",
|
|
TimeZone::AmericaAraguaina => "America/Araguaina",
|
|
TimeZone::AmericaArgentinaBuenosAires => "America/Argentina/Buenos_Aires",
|
|
TimeZone::AmericaArgentinaCatamarca => "America/Argentina/Catamarca",
|
|
TimeZone::AmericaArgentinaComodRivadavia => "America/Argentina/ComodRivadavia",
|
|
TimeZone::AmericaArgentinaCordoba => "America/Argentina/Cordoba",
|
|
TimeZone::AmericaArgentinaJujuy => "America/Argentina/Jujuy",
|
|
TimeZone::AmericaArgentinaLaRioja => "America/Argentina/La_Rioja",
|
|
TimeZone::AmericaArgentinaMendoza => "America/Argentina/Mendoza",
|
|
TimeZone::AmericaArgentinaRioGallegos => "America/Argentina/Rio_Gallegos",
|
|
TimeZone::AmericaArgentinaSalta => "America/Argentina/Salta",
|
|
TimeZone::AmericaArgentinaSanJuan => "America/Argentina/San_Juan",
|
|
TimeZone::AmericaArgentinaSanLuis => "America/Argentina/San_Luis",
|
|
TimeZone::AmericaArgentinaTucuman => "America/Argentina/Tucuman",
|
|
TimeZone::AmericaArgentinaUshuaia => "America/Argentina/Ushuaia",
|
|
TimeZone::AmericaAruba => "America/Aruba",
|
|
TimeZone::AmericaAsuncion => "America/Asuncion",
|
|
TimeZone::AmericaAtikokan => "America/Atikokan",
|
|
TimeZone::AmericaAtka => "America/Atka",
|
|
TimeZone::AmericaBahia => "America/Bahia",
|
|
TimeZone::AmericaBahiaBanderas => "America/Bahia_Banderas",
|
|
TimeZone::AmericaBarbados => "America/Barbados",
|
|
TimeZone::AmericaBelem => "America/Belem",
|
|
TimeZone::AmericaBelize => "America/Belize",
|
|
TimeZone::AmericaBlancSablon => "America/Blanc-Sablon",
|
|
TimeZone::AmericaBoaVista => "America/Boa_Vista",
|
|
TimeZone::AmericaBogota => "America/Bogota",
|
|
TimeZone::AmericaBoise => "America/Boise",
|
|
TimeZone::AmericaBuenosAires => "America/Buenos_Aires",
|
|
TimeZone::AmericaCambridgeBay => "America/Cambridge_Bay",
|
|
TimeZone::AmericaCampoGrande => "America/Campo_Grande",
|
|
TimeZone::AmericaCancun => "America/Cancun",
|
|
TimeZone::AmericaCaracas => "America/Caracas",
|
|
TimeZone::AmericaCatamarca => "America/Catamarca",
|
|
TimeZone::AmericaCayenne => "America/Cayenne",
|
|
TimeZone::AmericaCayman => "America/Cayman",
|
|
TimeZone::AmericaChicago => "America/Chicago",
|
|
TimeZone::AmericaChihuahua => "America/Chihuahua",
|
|
TimeZone::AmericaCiudadJuarez => "America/Ciudad_Juarez",
|
|
TimeZone::AmericaCoralHarbour => "America/Coral_Harbour",
|
|
TimeZone::AmericaCordoba => "America/Cordoba",
|
|
TimeZone::AmericaCostaRica => "America/Costa_Rica",
|
|
TimeZone::AmericaCoyhaique => "America/Coyhaique",
|
|
TimeZone::AmericaCreston => "America/Creston",
|
|
TimeZone::AmericaCuiaba => "America/Cuiaba",
|
|
TimeZone::AmericaCuracao => "America/Curacao",
|
|
TimeZone::AmericaDanmarkshavn => "America/Danmarkshavn",
|
|
TimeZone::AmericaDawson => "America/Dawson",
|
|
TimeZone::AmericaDawsonCreek => "America/Dawson_Creek",
|
|
TimeZone::AmericaDenver => "America/Denver",
|
|
TimeZone::AmericaDetroit => "America/Detroit",
|
|
TimeZone::AmericaDominica => "America/Dominica",
|
|
TimeZone::AmericaEdmonton => "America/Edmonton",
|
|
TimeZone::AmericaEirunepe => "America/Eirunepe",
|
|
TimeZone::AmericaElSalvador => "America/El_Salvador",
|
|
TimeZone::AmericaEnsenada => "America/Ensenada",
|
|
TimeZone::AmericaFortNelson => "America/Fort_Nelson",
|
|
TimeZone::AmericaFortWayne => "America/Fort_Wayne",
|
|
TimeZone::AmericaFortaleza => "America/Fortaleza",
|
|
TimeZone::AmericaGlaceBay => "America/Glace_Bay",
|
|
TimeZone::AmericaGodthab => "America/Godthab",
|
|
TimeZone::AmericaGooseBay => "America/Goose_Bay",
|
|
TimeZone::AmericaGrandTurk => "America/Grand_Turk",
|
|
TimeZone::AmericaGrenada => "America/Grenada",
|
|
TimeZone::AmericaGuadeloupe => "America/Guadeloupe",
|
|
TimeZone::AmericaGuatemala => "America/Guatemala",
|
|
TimeZone::AmericaGuayaquil => "America/Guayaquil",
|
|
TimeZone::AmericaGuyana => "America/Guyana",
|
|
TimeZone::AmericaHalifax => "America/Halifax",
|
|
TimeZone::AmericaHavana => "America/Havana",
|
|
TimeZone::AmericaHermosillo => "America/Hermosillo",
|
|
TimeZone::AmericaIndianaIndianapolis => "America/Indiana/Indianapolis",
|
|
TimeZone::AmericaIndianaKnox => "America/Indiana/Knox",
|
|
TimeZone::AmericaIndianaMarengo => "America/Indiana/Marengo",
|
|
TimeZone::AmericaIndianaPetersburg => "America/Indiana/Petersburg",
|
|
TimeZone::AmericaIndianaTellCity => "America/Indiana/Tell_City",
|
|
TimeZone::AmericaIndianaVevay => "America/Indiana/Vevay",
|
|
TimeZone::AmericaIndianaVincennes => "America/Indiana/Vincennes",
|
|
TimeZone::AmericaIndianaWinamac => "America/Indiana/Winamac",
|
|
TimeZone::AmericaIndianapolis => "America/Indianapolis",
|
|
TimeZone::AmericaInuvik => "America/Inuvik",
|
|
TimeZone::AmericaIqaluit => "America/Iqaluit",
|
|
TimeZone::AmericaJamaica => "America/Jamaica",
|
|
TimeZone::AmericaJujuy => "America/Jujuy",
|
|
TimeZone::AmericaJuneau => "America/Juneau",
|
|
TimeZone::AmericaKentuckyLouisville => "America/Kentucky/Louisville",
|
|
TimeZone::AmericaKentuckyMonticello => "America/Kentucky/Monticello",
|
|
TimeZone::AmericaKnoxIN => "America/Knox_IN",
|
|
TimeZone::AmericaKralendijk => "America/Kralendijk",
|
|
TimeZone::AmericaLaPaz => "America/La_Paz",
|
|
TimeZone::AmericaLima => "America/Lima",
|
|
TimeZone::AmericaLosAngeles => "America/Los_Angeles",
|
|
TimeZone::AmericaLouisville => "America/Louisville",
|
|
TimeZone::AmericaLowerPrinces => "America/Lower_Princes",
|
|
TimeZone::AmericaMaceio => "America/Maceio",
|
|
TimeZone::AmericaManagua => "America/Managua",
|
|
TimeZone::AmericaManaus => "America/Manaus",
|
|
TimeZone::AmericaMarigot => "America/Marigot",
|
|
TimeZone::AmericaMartinique => "America/Martinique",
|
|
TimeZone::AmericaMatamoros => "America/Matamoros",
|
|
TimeZone::AmericaMazatlan => "America/Mazatlan",
|
|
TimeZone::AmericaMendoza => "America/Mendoza",
|
|
TimeZone::AmericaMenominee => "America/Menominee",
|
|
TimeZone::AmericaMerida => "America/Merida",
|
|
TimeZone::AmericaMetlakatla => "America/Metlakatla",
|
|
TimeZone::AmericaMexicoCity => "America/Mexico_City",
|
|
TimeZone::AmericaMiquelon => "America/Miquelon",
|
|
TimeZone::AmericaMoncton => "America/Moncton",
|
|
TimeZone::AmericaMonterrey => "America/Monterrey",
|
|
TimeZone::AmericaMontevideo => "America/Montevideo",
|
|
TimeZone::AmericaMontreal => "America/Montreal",
|
|
TimeZone::AmericaMontserrat => "America/Montserrat",
|
|
TimeZone::AmericaNassau => "America/Nassau",
|
|
TimeZone::AmericaNewYork => "America/New_York",
|
|
TimeZone::AmericaNipigon => "America/Nipigon",
|
|
TimeZone::AmericaNome => "America/Nome",
|
|
TimeZone::AmericaNoronha => "America/Noronha",
|
|
TimeZone::AmericaNorthDakotaBeulah => "America/North_Dakota/Beulah",
|
|
TimeZone::AmericaNorthDakotaCenter => "America/North_Dakota/Center",
|
|
TimeZone::AmericaNorthDakotaNewSalem => "America/North_Dakota/New_Salem",
|
|
TimeZone::AmericaNuuk => "America/Nuuk",
|
|
TimeZone::AmericaOjinaga => "America/Ojinaga",
|
|
TimeZone::AmericaPanama => "America/Panama",
|
|
TimeZone::AmericaPangnirtung => "America/Pangnirtung",
|
|
TimeZone::AmericaParamaribo => "America/Paramaribo",
|
|
TimeZone::AmericaPhoenix => "America/Phoenix",
|
|
TimeZone::AmericaPortAuPrince => "America/Port-au-Prince",
|
|
TimeZone::AmericaPortOfSpain => "America/Port_of_Spain",
|
|
TimeZone::AmericaPortoAcre => "America/Porto_Acre",
|
|
TimeZone::AmericaPortoVelho => "America/Porto_Velho",
|
|
TimeZone::AmericaPuertoRico => "America/Puerto_Rico",
|
|
TimeZone::AmericaPuntaArenas => "America/Punta_Arenas",
|
|
TimeZone::AmericaRainyRiver => "America/Rainy_River",
|
|
TimeZone::AmericaRankinInlet => "America/Rankin_Inlet",
|
|
TimeZone::AmericaRecife => "America/Recife",
|
|
TimeZone::AmericaRegina => "America/Regina",
|
|
TimeZone::AmericaResolute => "America/Resolute",
|
|
TimeZone::AmericaRioBranco => "America/Rio_Branco",
|
|
TimeZone::AmericaRosario => "America/Rosario",
|
|
TimeZone::AmericaSantaIsabel => "America/Santa_Isabel",
|
|
TimeZone::AmericaSantarem => "America/Santarem",
|
|
TimeZone::AmericaSantiago => "America/Santiago",
|
|
TimeZone::AmericaSantoDomingo => "America/Santo_Domingo",
|
|
TimeZone::AmericaSaoPaulo => "America/Sao_Paulo",
|
|
TimeZone::AmericaScoresbysund => "America/Scoresbysund",
|
|
TimeZone::AmericaShiprock => "America/Shiprock",
|
|
TimeZone::AmericaSitka => "America/Sitka",
|
|
TimeZone::AmericaStBarthelemy => "America/St_Barthelemy",
|
|
TimeZone::AmericaStJohns => "America/St_Johns",
|
|
TimeZone::AmericaStKitts => "America/St_Kitts",
|
|
TimeZone::AmericaStLucia => "America/St_Lucia",
|
|
TimeZone::AmericaStThomas => "America/St_Thomas",
|
|
TimeZone::AmericaStVincent => "America/St_Vincent",
|
|
TimeZone::AmericaSwiftCurrent => "America/Swift_Current",
|
|
TimeZone::AmericaTegucigalpa => "America/Tegucigalpa",
|
|
TimeZone::AmericaThule => "America/Thule",
|
|
TimeZone::AmericaThunderBay => "America/Thunder_Bay",
|
|
TimeZone::AmericaTijuana => "America/Tijuana",
|
|
TimeZone::AmericaToronto => "America/Toronto",
|
|
TimeZone::AmericaTortola => "America/Tortola",
|
|
TimeZone::AmericaVancouver => "America/Vancouver",
|
|
TimeZone::AmericaVirgin => "America/Virgin",
|
|
TimeZone::AmericaWhitehorse => "America/Whitehorse",
|
|
TimeZone::AmericaWinnipeg => "America/Winnipeg",
|
|
TimeZone::AmericaYakutat => "America/Yakutat",
|
|
TimeZone::AmericaYellowknife => "America/Yellowknife",
|
|
TimeZone::AntarcticaCasey => "Antarctica/Casey",
|
|
TimeZone::AntarcticaDavis => "Antarctica/Davis",
|
|
TimeZone::AntarcticaDumontDUrville => "Antarctica/DumontDUrville",
|
|
TimeZone::AntarcticaMacquarie => "Antarctica/Macquarie",
|
|
TimeZone::AntarcticaMawson => "Antarctica/Mawson",
|
|
TimeZone::AntarcticaMcMurdo => "Antarctica/McMurdo",
|
|
TimeZone::AntarcticaPalmer => "Antarctica/Palmer",
|
|
TimeZone::AntarcticaRothera => "Antarctica/Rothera",
|
|
TimeZone::AntarcticaSouthPole => "Antarctica/South_Pole",
|
|
TimeZone::AntarcticaSyowa => "Antarctica/Syowa",
|
|
TimeZone::AntarcticaTroll => "Antarctica/Troll",
|
|
TimeZone::AntarcticaVostok => "Antarctica/Vostok",
|
|
TimeZone::ArcticLongyearbyen => "Arctic/Longyearbyen",
|
|
TimeZone::AsiaAden => "Asia/Aden",
|
|
TimeZone::AsiaAlmaty => "Asia/Almaty",
|
|
TimeZone::AsiaAmman => "Asia/Amman",
|
|
TimeZone::AsiaAnadyr => "Asia/Anadyr",
|
|
TimeZone::AsiaAqtau => "Asia/Aqtau",
|
|
TimeZone::AsiaAqtobe => "Asia/Aqtobe",
|
|
TimeZone::AsiaAshgabat => "Asia/Ashgabat",
|
|
TimeZone::AsiaAshkhabad => "Asia/Ashkhabad",
|
|
TimeZone::AsiaAtyrau => "Asia/Atyrau",
|
|
TimeZone::AsiaBaghdad => "Asia/Baghdad",
|
|
TimeZone::AsiaBahrain => "Asia/Bahrain",
|
|
TimeZone::AsiaBaku => "Asia/Baku",
|
|
TimeZone::AsiaBangkok => "Asia/Bangkok",
|
|
TimeZone::AsiaBarnaul => "Asia/Barnaul",
|
|
TimeZone::AsiaBeirut => "Asia/Beirut",
|
|
TimeZone::AsiaBishkek => "Asia/Bishkek",
|
|
TimeZone::AsiaBrunei => "Asia/Brunei",
|
|
TimeZone::AsiaCalcutta => "Asia/Calcutta",
|
|
TimeZone::AsiaChita => "Asia/Chita",
|
|
TimeZone::AsiaChoibalsan => "Asia/Choibalsan",
|
|
TimeZone::AsiaChongqing => "Asia/Chongqing",
|
|
TimeZone::AsiaChungking => "Asia/Chungking",
|
|
TimeZone::AsiaColombo => "Asia/Colombo",
|
|
TimeZone::AsiaDacca => "Asia/Dacca",
|
|
TimeZone::AsiaDamascus => "Asia/Damascus",
|
|
TimeZone::AsiaDhaka => "Asia/Dhaka",
|
|
TimeZone::AsiaDili => "Asia/Dili",
|
|
TimeZone::AsiaDubai => "Asia/Dubai",
|
|
TimeZone::AsiaDushanbe => "Asia/Dushanbe",
|
|
TimeZone::AsiaFamagusta => "Asia/Famagusta",
|
|
TimeZone::AsiaGaza => "Asia/Gaza",
|
|
TimeZone::AsiaHarbin => "Asia/Harbin",
|
|
TimeZone::AsiaHebron => "Asia/Hebron",
|
|
TimeZone::AsiaHoChiMinh => "Asia/Ho_Chi_Minh",
|
|
TimeZone::AsiaHongKong => "Asia/Hong_Kong",
|
|
TimeZone::AsiaHovd => "Asia/Hovd",
|
|
TimeZone::AsiaIrkutsk => "Asia/Irkutsk",
|
|
TimeZone::AsiaIstanbul => "Asia/Istanbul",
|
|
TimeZone::AsiaJakarta => "Asia/Jakarta",
|
|
TimeZone::AsiaJayapura => "Asia/Jayapura",
|
|
TimeZone::AsiaJerusalem => "Asia/Jerusalem",
|
|
TimeZone::AsiaKabul => "Asia/Kabul",
|
|
TimeZone::AsiaKamchatka => "Asia/Kamchatka",
|
|
TimeZone::AsiaKarachi => "Asia/Karachi",
|
|
TimeZone::AsiaKashgar => "Asia/Kashgar",
|
|
TimeZone::AsiaKathmandu => "Asia/Kathmandu",
|
|
TimeZone::AsiaKatmandu => "Asia/Katmandu",
|
|
TimeZone::AsiaKhandyga => "Asia/Khandyga",
|
|
TimeZone::AsiaKolkata => "Asia/Kolkata",
|
|
TimeZone::AsiaKrasnoyarsk => "Asia/Krasnoyarsk",
|
|
TimeZone::AsiaKualaLumpur => "Asia/Kuala_Lumpur",
|
|
TimeZone::AsiaKuching => "Asia/Kuching",
|
|
TimeZone::AsiaKuwait => "Asia/Kuwait",
|
|
TimeZone::AsiaMacao => "Asia/Macao",
|
|
TimeZone::AsiaMacau => "Asia/Macau",
|
|
TimeZone::AsiaMagadan => "Asia/Magadan",
|
|
TimeZone::AsiaMakassar => "Asia/Makassar",
|
|
TimeZone::AsiaManila => "Asia/Manila",
|
|
TimeZone::AsiaMuscat => "Asia/Muscat",
|
|
TimeZone::AsiaNicosia => "Asia/Nicosia",
|
|
TimeZone::AsiaNovokuznetsk => "Asia/Novokuznetsk",
|
|
TimeZone::AsiaNovosibirsk => "Asia/Novosibirsk",
|
|
TimeZone::AsiaOmsk => "Asia/Omsk",
|
|
TimeZone::AsiaOral => "Asia/Oral",
|
|
TimeZone::AsiaPhnomPenh => "Asia/Phnom_Penh",
|
|
TimeZone::AsiaPontianak => "Asia/Pontianak",
|
|
TimeZone::AsiaPyongyang => "Asia/Pyongyang",
|
|
TimeZone::AsiaQatar => "Asia/Qatar",
|
|
TimeZone::AsiaQostanay => "Asia/Qostanay",
|
|
TimeZone::AsiaQyzylorda => "Asia/Qyzylorda",
|
|
TimeZone::AsiaRangoon => "Asia/Rangoon",
|
|
TimeZone::AsiaRiyadh => "Asia/Riyadh",
|
|
TimeZone::AsiaSaigon => "Asia/Saigon",
|
|
TimeZone::AsiaSakhalin => "Asia/Sakhalin",
|
|
TimeZone::AsiaSamarkand => "Asia/Samarkand",
|
|
TimeZone::AsiaSeoul => "Asia/Seoul",
|
|
TimeZone::AsiaShanghai => "Asia/Shanghai",
|
|
TimeZone::AsiaSingapore => "Asia/Singapore",
|
|
TimeZone::AsiaSrednekolymsk => "Asia/Srednekolymsk",
|
|
TimeZone::AsiaTaipei => "Asia/Taipei",
|
|
TimeZone::AsiaTashkent => "Asia/Tashkent",
|
|
TimeZone::AsiaTbilisi => "Asia/Tbilisi",
|
|
TimeZone::AsiaTehran => "Asia/Tehran",
|
|
TimeZone::AsiaTelAviv => "Asia/Tel_Aviv",
|
|
TimeZone::AsiaThimbu => "Asia/Thimbu",
|
|
TimeZone::AsiaThimphu => "Asia/Thimphu",
|
|
TimeZone::AsiaTokyo => "Asia/Tokyo",
|
|
TimeZone::AsiaTomsk => "Asia/Tomsk",
|
|
TimeZone::AsiaUjungPandang => "Asia/Ujung_Pandang",
|
|
TimeZone::AsiaUlaanbaatar => "Asia/Ulaanbaatar",
|
|
TimeZone::AsiaUlanBator => "Asia/Ulan_Bator",
|
|
TimeZone::AsiaUrumqi => "Asia/Urumqi",
|
|
TimeZone::AsiaUstNera => "Asia/Ust-Nera",
|
|
TimeZone::AsiaVientiane => "Asia/Vientiane",
|
|
TimeZone::AsiaVladivostok => "Asia/Vladivostok",
|
|
TimeZone::AsiaYakutsk => "Asia/Yakutsk",
|
|
TimeZone::AsiaYangon => "Asia/Yangon",
|
|
TimeZone::AsiaYekaterinburg => "Asia/Yekaterinburg",
|
|
TimeZone::AsiaYerevan => "Asia/Yerevan",
|
|
TimeZone::AtlanticAzores => "Atlantic/Azores",
|
|
TimeZone::AtlanticBermuda => "Atlantic/Bermuda",
|
|
TimeZone::AtlanticCanary => "Atlantic/Canary",
|
|
TimeZone::AtlanticCapeVerde => "Atlantic/Cape_Verde",
|
|
TimeZone::AtlanticFaeroe => "Atlantic/Faeroe",
|
|
TimeZone::AtlanticFaroe => "Atlantic/Faroe",
|
|
TimeZone::AtlanticJanMayen => "Atlantic/Jan_Mayen",
|
|
TimeZone::AtlanticMadeira => "Atlantic/Madeira",
|
|
TimeZone::AtlanticReykjavik => "Atlantic/Reykjavik",
|
|
TimeZone::AtlanticSouthGeorgia => "Atlantic/South_Georgia",
|
|
TimeZone::AtlanticStHelena => "Atlantic/St_Helena",
|
|
TimeZone::AtlanticStanley => "Atlantic/Stanley",
|
|
TimeZone::AustraliaACT => "Australia/ACT",
|
|
TimeZone::AustraliaAdelaide => "Australia/Adelaide",
|
|
TimeZone::AustraliaBrisbane => "Australia/Brisbane",
|
|
TimeZone::AustraliaBrokenHill => "Australia/Broken_Hill",
|
|
TimeZone::AustraliaCanberra => "Australia/Canberra",
|
|
TimeZone::AustraliaCurrie => "Australia/Currie",
|
|
TimeZone::AustraliaDarwin => "Australia/Darwin",
|
|
TimeZone::AustraliaEucla => "Australia/Eucla",
|
|
TimeZone::AustraliaHobart => "Australia/Hobart",
|
|
TimeZone::AustraliaLHI => "Australia/LHI",
|
|
TimeZone::AustraliaLindeman => "Australia/Lindeman",
|
|
TimeZone::AustraliaLordHowe => "Australia/Lord_Howe",
|
|
TimeZone::AustraliaMelbourne => "Australia/Melbourne",
|
|
TimeZone::AustraliaNSW => "Australia/NSW",
|
|
TimeZone::AustraliaNorth => "Australia/North",
|
|
TimeZone::AustraliaPerth => "Australia/Perth",
|
|
TimeZone::AustraliaQueensland => "Australia/Queensland",
|
|
TimeZone::AustraliaSouth => "Australia/South",
|
|
TimeZone::AustraliaSydney => "Australia/Sydney",
|
|
TimeZone::AustraliaTasmania => "Australia/Tasmania",
|
|
TimeZone::AustraliaVictoria => "Australia/Victoria",
|
|
TimeZone::AustraliaWest => "Australia/West",
|
|
TimeZone::AustraliaYancowinna => "Australia/Yancowinna",
|
|
TimeZone::BrazilAcre => "Brazil/Acre",
|
|
TimeZone::BrazilDeNoronha => "Brazil/DeNoronha",
|
|
TimeZone::BrazilEast => "Brazil/East",
|
|
TimeZone::BrazilWest => "Brazil/West",
|
|
TimeZone::CET => "CET",
|
|
TimeZone::CST6CDT => "CST6CDT",
|
|
TimeZone::CanadaAtlantic => "Canada/Atlantic",
|
|
TimeZone::CanadaCentral => "Canada/Central",
|
|
TimeZone::CanadaEastern => "Canada/Eastern",
|
|
TimeZone::CanadaMountain => "Canada/Mountain",
|
|
TimeZone::CanadaNewfoundland => "Canada/Newfoundland",
|
|
TimeZone::CanadaPacific => "Canada/Pacific",
|
|
TimeZone::CanadaSaskatchewan => "Canada/Saskatchewan",
|
|
TimeZone::CanadaYukon => "Canada/Yukon",
|
|
TimeZone::ChileContinental => "Chile/Continental",
|
|
TimeZone::ChileEasterIsland => "Chile/EasterIsland",
|
|
TimeZone::Cuba => "Cuba",
|
|
TimeZone::EET => "EET",
|
|
TimeZone::EST => "EST",
|
|
TimeZone::EST5EDT => "EST5EDT",
|
|
TimeZone::Egypt => "Egypt",
|
|
TimeZone::Eire => "Eire",
|
|
TimeZone::EtcGMT => "Etc/GMT",
|
|
TimeZone::EtcGMTPlus0 => "Etc/GMT+0",
|
|
TimeZone::EtcGMTPlus1 => "Etc/GMT+1",
|
|
TimeZone::EtcGMTPlus10 => "Etc/GMT+10",
|
|
TimeZone::EtcGMTPlus11 => "Etc/GMT+11",
|
|
TimeZone::EtcGMTPlus12 => "Etc/GMT+12",
|
|
TimeZone::EtcGMTPlus2 => "Etc/GMT+2",
|
|
TimeZone::EtcGMTPlus3 => "Etc/GMT+3",
|
|
TimeZone::EtcGMTPlus4 => "Etc/GMT+4",
|
|
TimeZone::EtcGMTPlus5 => "Etc/GMT+5",
|
|
TimeZone::EtcGMTPlus6 => "Etc/GMT+6",
|
|
TimeZone::EtcGMTPlus7 => "Etc/GMT+7",
|
|
TimeZone::EtcGMTPlus8 => "Etc/GMT+8",
|
|
TimeZone::EtcGMTPlus9 => "Etc/GMT+9",
|
|
TimeZone::EtcGMTMinus0 => "Etc/GMT-0",
|
|
TimeZone::EtcGMTMinus1 => "Etc/GMT-1",
|
|
TimeZone::EtcGMTMinus10 => "Etc/GMT-10",
|
|
TimeZone::EtcGMTMinus11 => "Etc/GMT-11",
|
|
TimeZone::EtcGMTMinus12 => "Etc/GMT-12",
|
|
TimeZone::EtcGMTMinus13 => "Etc/GMT-13",
|
|
TimeZone::EtcGMTMinus14 => "Etc/GMT-14",
|
|
TimeZone::EtcGMTMinus2 => "Etc/GMT-2",
|
|
TimeZone::EtcGMTMinus3 => "Etc/GMT-3",
|
|
TimeZone::EtcGMTMinus4 => "Etc/GMT-4",
|
|
TimeZone::EtcGMTMinus5 => "Etc/GMT-5",
|
|
TimeZone::EtcGMTMinus6 => "Etc/GMT-6",
|
|
TimeZone::EtcGMTMinus7 => "Etc/GMT-7",
|
|
TimeZone::EtcGMTMinus8 => "Etc/GMT-8",
|
|
TimeZone::EtcGMTMinus9 => "Etc/GMT-9",
|
|
TimeZone::EtcGMT0 => "Etc/GMT0",
|
|
TimeZone::EtcGreenwich => "Etc/Greenwich",
|
|
TimeZone::EtcUCT => "Etc/UCT",
|
|
TimeZone::EtcUTC => "Etc/UTC",
|
|
TimeZone::EtcUniversal => "Etc/Universal",
|
|
TimeZone::EtcZulu => "Etc/Zulu",
|
|
TimeZone::EuropeAmsterdam => "Europe/Amsterdam",
|
|
TimeZone::EuropeAndorra => "Europe/Andorra",
|
|
TimeZone::EuropeAstrakhan => "Europe/Astrakhan",
|
|
TimeZone::EuropeAthens => "Europe/Athens",
|
|
TimeZone::EuropeBelfast => "Europe/Belfast",
|
|
TimeZone::EuropeBelgrade => "Europe/Belgrade",
|
|
TimeZone::EuropeBerlin => "Europe/Berlin",
|
|
TimeZone::EuropeBratislava => "Europe/Bratislava",
|
|
TimeZone::EuropeBrussels => "Europe/Brussels",
|
|
TimeZone::EuropeBucharest => "Europe/Bucharest",
|
|
TimeZone::EuropeBudapest => "Europe/Budapest",
|
|
TimeZone::EuropeBusingen => "Europe/Busingen",
|
|
TimeZone::EuropeChisinau => "Europe/Chisinau",
|
|
TimeZone::EuropeCopenhagen => "Europe/Copenhagen",
|
|
TimeZone::EuropeDublin => "Europe/Dublin",
|
|
TimeZone::EuropeGibraltar => "Europe/Gibraltar",
|
|
TimeZone::EuropeGuernsey => "Europe/Guernsey",
|
|
TimeZone::EuropeHelsinki => "Europe/Helsinki",
|
|
TimeZone::EuropeIsleOfMan => "Europe/Isle_of_Man",
|
|
TimeZone::EuropeIstanbul => "Europe/Istanbul",
|
|
TimeZone::EuropeJersey => "Europe/Jersey",
|
|
TimeZone::EuropeKaliningrad => "Europe/Kaliningrad",
|
|
TimeZone::EuropeKiev => "Europe/Kiev",
|
|
TimeZone::EuropeKirov => "Europe/Kirov",
|
|
TimeZone::EuropeKyiv => "Europe/Kyiv",
|
|
TimeZone::EuropeLisbon => "Europe/Lisbon",
|
|
TimeZone::EuropeLjubljana => "Europe/Ljubljana",
|
|
TimeZone::EuropeLondon => "Europe/London",
|
|
TimeZone::EuropeLuxembourg => "Europe/Luxembourg",
|
|
TimeZone::EuropeMadrid => "Europe/Madrid",
|
|
TimeZone::EuropeMalta => "Europe/Malta",
|
|
TimeZone::EuropeMariehamn => "Europe/Mariehamn",
|
|
TimeZone::EuropeMinsk => "Europe/Minsk",
|
|
TimeZone::EuropeMonaco => "Europe/Monaco",
|
|
TimeZone::EuropeMoscow => "Europe/Moscow",
|
|
TimeZone::EuropeNicosia => "Europe/Nicosia",
|
|
TimeZone::EuropeOslo => "Europe/Oslo",
|
|
TimeZone::EuropeParis => "Europe/Paris",
|
|
TimeZone::EuropePodgorica => "Europe/Podgorica",
|
|
TimeZone::EuropePrague => "Europe/Prague",
|
|
TimeZone::EuropeRiga => "Europe/Riga",
|
|
TimeZone::EuropeRome => "Europe/Rome",
|
|
TimeZone::EuropeSamara => "Europe/Samara",
|
|
TimeZone::EuropeSanMarino => "Europe/San_Marino",
|
|
TimeZone::EuropeSarajevo => "Europe/Sarajevo",
|
|
TimeZone::EuropeSaratov => "Europe/Saratov",
|
|
TimeZone::EuropeSimferopol => "Europe/Simferopol",
|
|
TimeZone::EuropeSkopje => "Europe/Skopje",
|
|
TimeZone::EuropeSofia => "Europe/Sofia",
|
|
TimeZone::EuropeStockholm => "Europe/Stockholm",
|
|
TimeZone::EuropeTallinn => "Europe/Tallinn",
|
|
TimeZone::EuropeTirane => "Europe/Tirane",
|
|
TimeZone::EuropeTiraspol => "Europe/Tiraspol",
|
|
TimeZone::EuropeUlyanovsk => "Europe/Ulyanovsk",
|
|
TimeZone::EuropeUzhgorod => "Europe/Uzhgorod",
|
|
TimeZone::EuropeVaduz => "Europe/Vaduz",
|
|
TimeZone::EuropeVatican => "Europe/Vatican",
|
|
TimeZone::EuropeVienna => "Europe/Vienna",
|
|
TimeZone::EuropeVilnius => "Europe/Vilnius",
|
|
TimeZone::EuropeVolgograd => "Europe/Volgograd",
|
|
TimeZone::EuropeWarsaw => "Europe/Warsaw",
|
|
TimeZone::EuropeZagreb => "Europe/Zagreb",
|
|
TimeZone::EuropeZaporozhye => "Europe/Zaporozhye",
|
|
TimeZone::EuropeZurich => "Europe/Zurich",
|
|
TimeZone::Factory => "Factory",
|
|
TimeZone::GB => "GB",
|
|
TimeZone::GBEire => "GB-Eire",
|
|
TimeZone::GMT => "GMT",
|
|
TimeZone::GMTPlus0 => "GMT+0",
|
|
TimeZone::GMTMinus0 => "GMT-0",
|
|
TimeZone::GMT0 => "GMT0",
|
|
TimeZone::Greenwich => "Greenwich",
|
|
TimeZone::HST => "HST",
|
|
TimeZone::Hongkong => "Hongkong",
|
|
TimeZone::Iceland => "Iceland",
|
|
TimeZone::IndianAntananarivo => "Indian/Antananarivo",
|
|
TimeZone::IndianChagos => "Indian/Chagos",
|
|
TimeZone::IndianChristmas => "Indian/Christmas",
|
|
TimeZone::IndianCocos => "Indian/Cocos",
|
|
TimeZone::IndianComoro => "Indian/Comoro",
|
|
TimeZone::IndianKerguelen => "Indian/Kerguelen",
|
|
TimeZone::IndianMahe => "Indian/Mahe",
|
|
TimeZone::IndianMaldives => "Indian/Maldives",
|
|
TimeZone::IndianMauritius => "Indian/Mauritius",
|
|
TimeZone::IndianMayotte => "Indian/Mayotte",
|
|
TimeZone::IndianReunion => "Indian/Reunion",
|
|
TimeZone::Iran => "Iran",
|
|
TimeZone::Israel => "Israel",
|
|
TimeZone::Jamaica => "Jamaica",
|
|
TimeZone::Japan => "Japan",
|
|
TimeZone::Kwajalein => "Kwajalein",
|
|
TimeZone::Libya => "Libya",
|
|
TimeZone::MET => "MET",
|
|
TimeZone::MST => "MST",
|
|
TimeZone::MST7MDT => "MST7MDT",
|
|
TimeZone::MexicoBajaNorte => "Mexico/BajaNorte",
|
|
TimeZone::MexicoBajaSur => "Mexico/BajaSur",
|
|
TimeZone::MexicoGeneral => "Mexico/General",
|
|
TimeZone::NZ => "NZ",
|
|
TimeZone::NZCHAT => "NZ-CHAT",
|
|
TimeZone::Navajo => "Navajo",
|
|
TimeZone::PRC => "PRC",
|
|
TimeZone::PST8PDT => "PST8PDT",
|
|
TimeZone::PacificApia => "Pacific/Apia",
|
|
TimeZone::PacificAuckland => "Pacific/Auckland",
|
|
TimeZone::PacificBougainville => "Pacific/Bougainville",
|
|
TimeZone::PacificChatham => "Pacific/Chatham",
|
|
TimeZone::PacificChuuk => "Pacific/Chuuk",
|
|
TimeZone::PacificEaster => "Pacific/Easter",
|
|
TimeZone::PacificEfate => "Pacific/Efate",
|
|
TimeZone::PacificEnderbury => "Pacific/Enderbury",
|
|
TimeZone::PacificFakaofo => "Pacific/Fakaofo",
|
|
TimeZone::PacificFiji => "Pacific/Fiji",
|
|
TimeZone::PacificFunafuti => "Pacific/Funafuti",
|
|
TimeZone::PacificGalapagos => "Pacific/Galapagos",
|
|
TimeZone::PacificGambier => "Pacific/Gambier",
|
|
TimeZone::PacificGuadalcanal => "Pacific/Guadalcanal",
|
|
TimeZone::PacificGuam => "Pacific/Guam",
|
|
TimeZone::PacificHonolulu => "Pacific/Honolulu",
|
|
TimeZone::PacificJohnston => "Pacific/Johnston",
|
|
TimeZone::PacificKanton => "Pacific/Kanton",
|
|
TimeZone::PacificKiritimati => "Pacific/Kiritimati",
|
|
TimeZone::PacificKosrae => "Pacific/Kosrae",
|
|
TimeZone::PacificKwajalein => "Pacific/Kwajalein",
|
|
TimeZone::PacificMajuro => "Pacific/Majuro",
|
|
TimeZone::PacificMarquesas => "Pacific/Marquesas",
|
|
TimeZone::PacificMidway => "Pacific/Midway",
|
|
TimeZone::PacificNauru => "Pacific/Nauru",
|
|
TimeZone::PacificNiue => "Pacific/Niue",
|
|
TimeZone::PacificNorfolk => "Pacific/Norfolk",
|
|
TimeZone::PacificNoumea => "Pacific/Noumea",
|
|
TimeZone::PacificPagoPago => "Pacific/Pago_Pago",
|
|
TimeZone::PacificPalau => "Pacific/Palau",
|
|
TimeZone::PacificPitcairn => "Pacific/Pitcairn",
|
|
TimeZone::PacificPohnpei => "Pacific/Pohnpei",
|
|
TimeZone::PacificPonape => "Pacific/Ponape",
|
|
TimeZone::PacificPortMoresby => "Pacific/Port_Moresby",
|
|
TimeZone::PacificRarotonga => "Pacific/Rarotonga",
|
|
TimeZone::PacificSaipan => "Pacific/Saipan",
|
|
TimeZone::PacificSamoa => "Pacific/Samoa",
|
|
TimeZone::PacificTahiti => "Pacific/Tahiti",
|
|
TimeZone::PacificTarawa => "Pacific/Tarawa",
|
|
TimeZone::PacificTongatapu => "Pacific/Tongatapu",
|
|
TimeZone::PacificTruk => "Pacific/Truk",
|
|
TimeZone::PacificWake => "Pacific/Wake",
|
|
TimeZone::PacificWallis => "Pacific/Wallis",
|
|
TimeZone::PacificYap => "Pacific/Yap",
|
|
TimeZone::Poland => "Poland",
|
|
TimeZone::Portugal => "Portugal",
|
|
TimeZone::ROC => "ROC",
|
|
TimeZone::ROK => "ROK",
|
|
TimeZone::Singapore => "Singapore",
|
|
TimeZone::Turkey => "Turkey",
|
|
TimeZone::UCT => "UCT",
|
|
TimeZone::USAlaska => "US/Alaska",
|
|
TimeZone::USAleutian => "US/Aleutian",
|
|
TimeZone::USArizona => "US/Arizona",
|
|
TimeZone::USCentral => "US/Central",
|
|
TimeZone::USEastIndiana => "US/East-Indiana",
|
|
TimeZone::USEastern => "US/Eastern",
|
|
TimeZone::USHawaii => "US/Hawaii",
|
|
TimeZone::USIndianaStarke => "US/Indiana-Starke",
|
|
TimeZone::USMichigan => "US/Michigan",
|
|
TimeZone::USMountain => "US/Mountain",
|
|
TimeZone::USPacific => "US/Pacific",
|
|
TimeZone::USSamoa => "US/Samoa",
|
|
TimeZone::UTC => "UTC",
|
|
TimeZone::Universal => "Universal",
|
|
TimeZone::WSU => "W-SU",
|
|
TimeZone::WET => "WET",
|
|
TimeZone::Zulu => "Zulu",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TimeZone::AfricaAbidjan),
|
|
1 => Some(TimeZone::AfricaAccra),
|
|
2 => Some(TimeZone::AfricaAddisAbaba),
|
|
3 => Some(TimeZone::AfricaAlgiers),
|
|
4 => Some(TimeZone::AfricaAsmara),
|
|
5 => Some(TimeZone::AfricaAsmera),
|
|
6 => Some(TimeZone::AfricaBamako),
|
|
7 => Some(TimeZone::AfricaBangui),
|
|
8 => Some(TimeZone::AfricaBanjul),
|
|
9 => Some(TimeZone::AfricaBissau),
|
|
10 => Some(TimeZone::AfricaBlantyre),
|
|
11 => Some(TimeZone::AfricaBrazzaville),
|
|
12 => Some(TimeZone::AfricaBujumbura),
|
|
13 => Some(TimeZone::AfricaCairo),
|
|
14 => Some(TimeZone::AfricaCasablanca),
|
|
15 => Some(TimeZone::AfricaCeuta),
|
|
16 => Some(TimeZone::AfricaConakry),
|
|
17 => Some(TimeZone::AfricaDakar),
|
|
18 => Some(TimeZone::AfricaDarEsSalaam),
|
|
19 => Some(TimeZone::AfricaDjibouti),
|
|
20 => Some(TimeZone::AfricaDouala),
|
|
21 => Some(TimeZone::AfricaElAaiun),
|
|
22 => Some(TimeZone::AfricaFreetown),
|
|
23 => Some(TimeZone::AfricaGaborone),
|
|
24 => Some(TimeZone::AfricaHarare),
|
|
25 => Some(TimeZone::AfricaJohannesburg),
|
|
26 => Some(TimeZone::AfricaJuba),
|
|
27 => Some(TimeZone::AfricaKampala),
|
|
28 => Some(TimeZone::AfricaKhartoum),
|
|
29 => Some(TimeZone::AfricaKigali),
|
|
30 => Some(TimeZone::AfricaKinshasa),
|
|
31 => Some(TimeZone::AfricaLagos),
|
|
32 => Some(TimeZone::AfricaLibreville),
|
|
33 => Some(TimeZone::AfricaLome),
|
|
34 => Some(TimeZone::AfricaLuanda),
|
|
35 => Some(TimeZone::AfricaLubumbashi),
|
|
36 => Some(TimeZone::AfricaLusaka),
|
|
37 => Some(TimeZone::AfricaMalabo),
|
|
38 => Some(TimeZone::AfricaMaputo),
|
|
39 => Some(TimeZone::AfricaMaseru),
|
|
40 => Some(TimeZone::AfricaMbabane),
|
|
41 => Some(TimeZone::AfricaMogadishu),
|
|
42 => Some(TimeZone::AfricaMonrovia),
|
|
43 => Some(TimeZone::AfricaNairobi),
|
|
44 => Some(TimeZone::AfricaNdjamena),
|
|
45 => Some(TimeZone::AfricaNiamey),
|
|
46 => Some(TimeZone::AfricaNouakchott),
|
|
47 => Some(TimeZone::AfricaOuagadougou),
|
|
48 => Some(TimeZone::AfricaPortoNovo),
|
|
49 => Some(TimeZone::AfricaSaoTome),
|
|
50 => Some(TimeZone::AfricaTimbuktu),
|
|
51 => Some(TimeZone::AfricaTripoli),
|
|
52 => Some(TimeZone::AfricaTunis),
|
|
53 => Some(TimeZone::AfricaWindhoek),
|
|
54 => Some(TimeZone::AmericaAdak),
|
|
55 => Some(TimeZone::AmericaAnchorage),
|
|
56 => Some(TimeZone::AmericaAnguilla),
|
|
57 => Some(TimeZone::AmericaAntigua),
|
|
58 => Some(TimeZone::AmericaAraguaina),
|
|
59 => Some(TimeZone::AmericaArgentinaBuenosAires),
|
|
60 => Some(TimeZone::AmericaArgentinaCatamarca),
|
|
61 => Some(TimeZone::AmericaArgentinaComodRivadavia),
|
|
62 => Some(TimeZone::AmericaArgentinaCordoba),
|
|
63 => Some(TimeZone::AmericaArgentinaJujuy),
|
|
64 => Some(TimeZone::AmericaArgentinaLaRioja),
|
|
65 => Some(TimeZone::AmericaArgentinaMendoza),
|
|
66 => Some(TimeZone::AmericaArgentinaRioGallegos),
|
|
67 => Some(TimeZone::AmericaArgentinaSalta),
|
|
68 => Some(TimeZone::AmericaArgentinaSanJuan),
|
|
69 => Some(TimeZone::AmericaArgentinaSanLuis),
|
|
70 => Some(TimeZone::AmericaArgentinaTucuman),
|
|
71 => Some(TimeZone::AmericaArgentinaUshuaia),
|
|
72 => Some(TimeZone::AmericaAruba),
|
|
73 => Some(TimeZone::AmericaAsuncion),
|
|
74 => Some(TimeZone::AmericaAtikokan),
|
|
75 => Some(TimeZone::AmericaAtka),
|
|
76 => Some(TimeZone::AmericaBahia),
|
|
77 => Some(TimeZone::AmericaBahiaBanderas),
|
|
78 => Some(TimeZone::AmericaBarbados),
|
|
79 => Some(TimeZone::AmericaBelem),
|
|
80 => Some(TimeZone::AmericaBelize),
|
|
81 => Some(TimeZone::AmericaBlancSablon),
|
|
82 => Some(TimeZone::AmericaBoaVista),
|
|
83 => Some(TimeZone::AmericaBogota),
|
|
84 => Some(TimeZone::AmericaBoise),
|
|
85 => Some(TimeZone::AmericaBuenosAires),
|
|
86 => Some(TimeZone::AmericaCambridgeBay),
|
|
87 => Some(TimeZone::AmericaCampoGrande),
|
|
88 => Some(TimeZone::AmericaCancun),
|
|
89 => Some(TimeZone::AmericaCaracas),
|
|
90 => Some(TimeZone::AmericaCatamarca),
|
|
91 => Some(TimeZone::AmericaCayenne),
|
|
92 => Some(TimeZone::AmericaCayman),
|
|
93 => Some(TimeZone::AmericaChicago),
|
|
94 => Some(TimeZone::AmericaChihuahua),
|
|
95 => Some(TimeZone::AmericaCiudadJuarez),
|
|
96 => Some(TimeZone::AmericaCoralHarbour),
|
|
97 => Some(TimeZone::AmericaCordoba),
|
|
98 => Some(TimeZone::AmericaCostaRica),
|
|
99 => Some(TimeZone::AmericaCoyhaique),
|
|
100 => Some(TimeZone::AmericaCreston),
|
|
101 => Some(TimeZone::AmericaCuiaba),
|
|
102 => Some(TimeZone::AmericaCuracao),
|
|
103 => Some(TimeZone::AmericaDanmarkshavn),
|
|
104 => Some(TimeZone::AmericaDawson),
|
|
105 => Some(TimeZone::AmericaDawsonCreek),
|
|
106 => Some(TimeZone::AmericaDenver),
|
|
107 => Some(TimeZone::AmericaDetroit),
|
|
108 => Some(TimeZone::AmericaDominica),
|
|
109 => Some(TimeZone::AmericaEdmonton),
|
|
110 => Some(TimeZone::AmericaEirunepe),
|
|
111 => Some(TimeZone::AmericaElSalvador),
|
|
112 => Some(TimeZone::AmericaEnsenada),
|
|
113 => Some(TimeZone::AmericaFortNelson),
|
|
114 => Some(TimeZone::AmericaFortWayne),
|
|
115 => Some(TimeZone::AmericaFortaleza),
|
|
116 => Some(TimeZone::AmericaGlaceBay),
|
|
117 => Some(TimeZone::AmericaGodthab),
|
|
118 => Some(TimeZone::AmericaGooseBay),
|
|
119 => Some(TimeZone::AmericaGrandTurk),
|
|
120 => Some(TimeZone::AmericaGrenada),
|
|
121 => Some(TimeZone::AmericaGuadeloupe),
|
|
122 => Some(TimeZone::AmericaGuatemala),
|
|
123 => Some(TimeZone::AmericaGuayaquil),
|
|
124 => Some(TimeZone::AmericaGuyana),
|
|
125 => Some(TimeZone::AmericaHalifax),
|
|
126 => Some(TimeZone::AmericaHavana),
|
|
127 => Some(TimeZone::AmericaHermosillo),
|
|
128 => Some(TimeZone::AmericaIndianaIndianapolis),
|
|
129 => Some(TimeZone::AmericaIndianaKnox),
|
|
130 => Some(TimeZone::AmericaIndianaMarengo),
|
|
131 => Some(TimeZone::AmericaIndianaPetersburg),
|
|
132 => Some(TimeZone::AmericaIndianaTellCity),
|
|
133 => Some(TimeZone::AmericaIndianaVevay),
|
|
134 => Some(TimeZone::AmericaIndianaVincennes),
|
|
135 => Some(TimeZone::AmericaIndianaWinamac),
|
|
136 => Some(TimeZone::AmericaIndianapolis),
|
|
137 => Some(TimeZone::AmericaInuvik),
|
|
138 => Some(TimeZone::AmericaIqaluit),
|
|
139 => Some(TimeZone::AmericaJamaica),
|
|
140 => Some(TimeZone::AmericaJujuy),
|
|
141 => Some(TimeZone::AmericaJuneau),
|
|
142 => Some(TimeZone::AmericaKentuckyLouisville),
|
|
143 => Some(TimeZone::AmericaKentuckyMonticello),
|
|
144 => Some(TimeZone::AmericaKnoxIN),
|
|
145 => Some(TimeZone::AmericaKralendijk),
|
|
146 => Some(TimeZone::AmericaLaPaz),
|
|
147 => Some(TimeZone::AmericaLima),
|
|
148 => Some(TimeZone::AmericaLosAngeles),
|
|
149 => Some(TimeZone::AmericaLouisville),
|
|
150 => Some(TimeZone::AmericaLowerPrinces),
|
|
151 => Some(TimeZone::AmericaMaceio),
|
|
152 => Some(TimeZone::AmericaManagua),
|
|
153 => Some(TimeZone::AmericaManaus),
|
|
154 => Some(TimeZone::AmericaMarigot),
|
|
155 => Some(TimeZone::AmericaMartinique),
|
|
156 => Some(TimeZone::AmericaMatamoros),
|
|
157 => Some(TimeZone::AmericaMazatlan),
|
|
158 => Some(TimeZone::AmericaMendoza),
|
|
159 => Some(TimeZone::AmericaMenominee),
|
|
160 => Some(TimeZone::AmericaMerida),
|
|
161 => Some(TimeZone::AmericaMetlakatla),
|
|
162 => Some(TimeZone::AmericaMexicoCity),
|
|
163 => Some(TimeZone::AmericaMiquelon),
|
|
164 => Some(TimeZone::AmericaMoncton),
|
|
165 => Some(TimeZone::AmericaMonterrey),
|
|
166 => Some(TimeZone::AmericaMontevideo),
|
|
167 => Some(TimeZone::AmericaMontreal),
|
|
168 => Some(TimeZone::AmericaMontserrat),
|
|
169 => Some(TimeZone::AmericaNassau),
|
|
170 => Some(TimeZone::AmericaNewYork),
|
|
171 => Some(TimeZone::AmericaNipigon),
|
|
172 => Some(TimeZone::AmericaNome),
|
|
173 => Some(TimeZone::AmericaNoronha),
|
|
174 => Some(TimeZone::AmericaNorthDakotaBeulah),
|
|
175 => Some(TimeZone::AmericaNorthDakotaCenter),
|
|
176 => Some(TimeZone::AmericaNorthDakotaNewSalem),
|
|
177 => Some(TimeZone::AmericaNuuk),
|
|
178 => Some(TimeZone::AmericaOjinaga),
|
|
179 => Some(TimeZone::AmericaPanama),
|
|
180 => Some(TimeZone::AmericaPangnirtung),
|
|
181 => Some(TimeZone::AmericaParamaribo),
|
|
182 => Some(TimeZone::AmericaPhoenix),
|
|
183 => Some(TimeZone::AmericaPortAuPrince),
|
|
184 => Some(TimeZone::AmericaPortOfSpain),
|
|
185 => Some(TimeZone::AmericaPortoAcre),
|
|
186 => Some(TimeZone::AmericaPortoVelho),
|
|
187 => Some(TimeZone::AmericaPuertoRico),
|
|
188 => Some(TimeZone::AmericaPuntaArenas),
|
|
189 => Some(TimeZone::AmericaRainyRiver),
|
|
190 => Some(TimeZone::AmericaRankinInlet),
|
|
191 => Some(TimeZone::AmericaRecife),
|
|
192 => Some(TimeZone::AmericaRegina),
|
|
193 => Some(TimeZone::AmericaResolute),
|
|
194 => Some(TimeZone::AmericaRioBranco),
|
|
195 => Some(TimeZone::AmericaRosario),
|
|
196 => Some(TimeZone::AmericaSantaIsabel),
|
|
197 => Some(TimeZone::AmericaSantarem),
|
|
198 => Some(TimeZone::AmericaSantiago),
|
|
199 => Some(TimeZone::AmericaSantoDomingo),
|
|
200 => Some(TimeZone::AmericaSaoPaulo),
|
|
201 => Some(TimeZone::AmericaScoresbysund),
|
|
202 => Some(TimeZone::AmericaShiprock),
|
|
203 => Some(TimeZone::AmericaSitka),
|
|
204 => Some(TimeZone::AmericaStBarthelemy),
|
|
205 => Some(TimeZone::AmericaStJohns),
|
|
206 => Some(TimeZone::AmericaStKitts),
|
|
207 => Some(TimeZone::AmericaStLucia),
|
|
208 => Some(TimeZone::AmericaStThomas),
|
|
209 => Some(TimeZone::AmericaStVincent),
|
|
210 => Some(TimeZone::AmericaSwiftCurrent),
|
|
211 => Some(TimeZone::AmericaTegucigalpa),
|
|
212 => Some(TimeZone::AmericaThule),
|
|
213 => Some(TimeZone::AmericaThunderBay),
|
|
214 => Some(TimeZone::AmericaTijuana),
|
|
215 => Some(TimeZone::AmericaToronto),
|
|
216 => Some(TimeZone::AmericaTortola),
|
|
217 => Some(TimeZone::AmericaVancouver),
|
|
218 => Some(TimeZone::AmericaVirgin),
|
|
219 => Some(TimeZone::AmericaWhitehorse),
|
|
220 => Some(TimeZone::AmericaWinnipeg),
|
|
221 => Some(TimeZone::AmericaYakutat),
|
|
222 => Some(TimeZone::AmericaYellowknife),
|
|
223 => Some(TimeZone::AntarcticaCasey),
|
|
224 => Some(TimeZone::AntarcticaDavis),
|
|
225 => Some(TimeZone::AntarcticaDumontDUrville),
|
|
226 => Some(TimeZone::AntarcticaMacquarie),
|
|
227 => Some(TimeZone::AntarcticaMawson),
|
|
228 => Some(TimeZone::AntarcticaMcMurdo),
|
|
229 => Some(TimeZone::AntarcticaPalmer),
|
|
230 => Some(TimeZone::AntarcticaRothera),
|
|
231 => Some(TimeZone::AntarcticaSouthPole),
|
|
232 => Some(TimeZone::AntarcticaSyowa),
|
|
233 => Some(TimeZone::AntarcticaTroll),
|
|
234 => Some(TimeZone::AntarcticaVostok),
|
|
235 => Some(TimeZone::ArcticLongyearbyen),
|
|
236 => Some(TimeZone::AsiaAden),
|
|
237 => Some(TimeZone::AsiaAlmaty),
|
|
238 => Some(TimeZone::AsiaAmman),
|
|
239 => Some(TimeZone::AsiaAnadyr),
|
|
240 => Some(TimeZone::AsiaAqtau),
|
|
241 => Some(TimeZone::AsiaAqtobe),
|
|
242 => Some(TimeZone::AsiaAshgabat),
|
|
243 => Some(TimeZone::AsiaAshkhabad),
|
|
244 => Some(TimeZone::AsiaAtyrau),
|
|
245 => Some(TimeZone::AsiaBaghdad),
|
|
246 => Some(TimeZone::AsiaBahrain),
|
|
247 => Some(TimeZone::AsiaBaku),
|
|
248 => Some(TimeZone::AsiaBangkok),
|
|
249 => Some(TimeZone::AsiaBarnaul),
|
|
250 => Some(TimeZone::AsiaBeirut),
|
|
251 => Some(TimeZone::AsiaBishkek),
|
|
252 => Some(TimeZone::AsiaBrunei),
|
|
253 => Some(TimeZone::AsiaCalcutta),
|
|
254 => Some(TimeZone::AsiaChita),
|
|
255 => Some(TimeZone::AsiaChoibalsan),
|
|
256 => Some(TimeZone::AsiaChongqing),
|
|
257 => Some(TimeZone::AsiaChungking),
|
|
258 => Some(TimeZone::AsiaColombo),
|
|
259 => Some(TimeZone::AsiaDacca),
|
|
260 => Some(TimeZone::AsiaDamascus),
|
|
261 => Some(TimeZone::AsiaDhaka),
|
|
262 => Some(TimeZone::AsiaDili),
|
|
263 => Some(TimeZone::AsiaDubai),
|
|
264 => Some(TimeZone::AsiaDushanbe),
|
|
265 => Some(TimeZone::AsiaFamagusta),
|
|
266 => Some(TimeZone::AsiaGaza),
|
|
267 => Some(TimeZone::AsiaHarbin),
|
|
268 => Some(TimeZone::AsiaHebron),
|
|
269 => Some(TimeZone::AsiaHoChiMinh),
|
|
270 => Some(TimeZone::AsiaHongKong),
|
|
271 => Some(TimeZone::AsiaHovd),
|
|
272 => Some(TimeZone::AsiaIrkutsk),
|
|
273 => Some(TimeZone::AsiaIstanbul),
|
|
274 => Some(TimeZone::AsiaJakarta),
|
|
275 => Some(TimeZone::AsiaJayapura),
|
|
276 => Some(TimeZone::AsiaJerusalem),
|
|
277 => Some(TimeZone::AsiaKabul),
|
|
278 => Some(TimeZone::AsiaKamchatka),
|
|
279 => Some(TimeZone::AsiaKarachi),
|
|
280 => Some(TimeZone::AsiaKashgar),
|
|
281 => Some(TimeZone::AsiaKathmandu),
|
|
282 => Some(TimeZone::AsiaKatmandu),
|
|
283 => Some(TimeZone::AsiaKhandyga),
|
|
284 => Some(TimeZone::AsiaKolkata),
|
|
285 => Some(TimeZone::AsiaKrasnoyarsk),
|
|
286 => Some(TimeZone::AsiaKualaLumpur),
|
|
287 => Some(TimeZone::AsiaKuching),
|
|
288 => Some(TimeZone::AsiaKuwait),
|
|
289 => Some(TimeZone::AsiaMacao),
|
|
290 => Some(TimeZone::AsiaMacau),
|
|
291 => Some(TimeZone::AsiaMagadan),
|
|
292 => Some(TimeZone::AsiaMakassar),
|
|
293 => Some(TimeZone::AsiaManila),
|
|
294 => Some(TimeZone::AsiaMuscat),
|
|
295 => Some(TimeZone::AsiaNicosia),
|
|
296 => Some(TimeZone::AsiaNovokuznetsk),
|
|
297 => Some(TimeZone::AsiaNovosibirsk),
|
|
298 => Some(TimeZone::AsiaOmsk),
|
|
299 => Some(TimeZone::AsiaOral),
|
|
300 => Some(TimeZone::AsiaPhnomPenh),
|
|
301 => Some(TimeZone::AsiaPontianak),
|
|
302 => Some(TimeZone::AsiaPyongyang),
|
|
303 => Some(TimeZone::AsiaQatar),
|
|
304 => Some(TimeZone::AsiaQostanay),
|
|
305 => Some(TimeZone::AsiaQyzylorda),
|
|
306 => Some(TimeZone::AsiaRangoon),
|
|
307 => Some(TimeZone::AsiaRiyadh),
|
|
308 => Some(TimeZone::AsiaSaigon),
|
|
309 => Some(TimeZone::AsiaSakhalin),
|
|
310 => Some(TimeZone::AsiaSamarkand),
|
|
311 => Some(TimeZone::AsiaSeoul),
|
|
312 => Some(TimeZone::AsiaShanghai),
|
|
313 => Some(TimeZone::AsiaSingapore),
|
|
314 => Some(TimeZone::AsiaSrednekolymsk),
|
|
315 => Some(TimeZone::AsiaTaipei),
|
|
316 => Some(TimeZone::AsiaTashkent),
|
|
317 => Some(TimeZone::AsiaTbilisi),
|
|
318 => Some(TimeZone::AsiaTehran),
|
|
319 => Some(TimeZone::AsiaTelAviv),
|
|
320 => Some(TimeZone::AsiaThimbu),
|
|
321 => Some(TimeZone::AsiaThimphu),
|
|
322 => Some(TimeZone::AsiaTokyo),
|
|
323 => Some(TimeZone::AsiaTomsk),
|
|
324 => Some(TimeZone::AsiaUjungPandang),
|
|
325 => Some(TimeZone::AsiaUlaanbaatar),
|
|
326 => Some(TimeZone::AsiaUlanBator),
|
|
327 => Some(TimeZone::AsiaUrumqi),
|
|
328 => Some(TimeZone::AsiaUstNera),
|
|
329 => Some(TimeZone::AsiaVientiane),
|
|
330 => Some(TimeZone::AsiaVladivostok),
|
|
331 => Some(TimeZone::AsiaYakutsk),
|
|
332 => Some(TimeZone::AsiaYangon),
|
|
333 => Some(TimeZone::AsiaYekaterinburg),
|
|
334 => Some(TimeZone::AsiaYerevan),
|
|
335 => Some(TimeZone::AtlanticAzores),
|
|
336 => Some(TimeZone::AtlanticBermuda),
|
|
337 => Some(TimeZone::AtlanticCanary),
|
|
338 => Some(TimeZone::AtlanticCapeVerde),
|
|
339 => Some(TimeZone::AtlanticFaeroe),
|
|
340 => Some(TimeZone::AtlanticFaroe),
|
|
341 => Some(TimeZone::AtlanticJanMayen),
|
|
342 => Some(TimeZone::AtlanticMadeira),
|
|
343 => Some(TimeZone::AtlanticReykjavik),
|
|
344 => Some(TimeZone::AtlanticSouthGeorgia),
|
|
345 => Some(TimeZone::AtlanticStHelena),
|
|
346 => Some(TimeZone::AtlanticStanley),
|
|
347 => Some(TimeZone::AustraliaACT),
|
|
348 => Some(TimeZone::AustraliaAdelaide),
|
|
349 => Some(TimeZone::AustraliaBrisbane),
|
|
350 => Some(TimeZone::AustraliaBrokenHill),
|
|
351 => Some(TimeZone::AustraliaCanberra),
|
|
352 => Some(TimeZone::AustraliaCurrie),
|
|
353 => Some(TimeZone::AustraliaDarwin),
|
|
354 => Some(TimeZone::AustraliaEucla),
|
|
355 => Some(TimeZone::AustraliaHobart),
|
|
356 => Some(TimeZone::AustraliaLHI),
|
|
357 => Some(TimeZone::AustraliaLindeman),
|
|
358 => Some(TimeZone::AustraliaLordHowe),
|
|
359 => Some(TimeZone::AustraliaMelbourne),
|
|
360 => Some(TimeZone::AustraliaNSW),
|
|
361 => Some(TimeZone::AustraliaNorth),
|
|
362 => Some(TimeZone::AustraliaPerth),
|
|
363 => Some(TimeZone::AustraliaQueensland),
|
|
364 => Some(TimeZone::AustraliaSouth),
|
|
365 => Some(TimeZone::AustraliaSydney),
|
|
366 => Some(TimeZone::AustraliaTasmania),
|
|
367 => Some(TimeZone::AustraliaVictoria),
|
|
368 => Some(TimeZone::AustraliaWest),
|
|
369 => Some(TimeZone::AustraliaYancowinna),
|
|
370 => Some(TimeZone::BrazilAcre),
|
|
371 => Some(TimeZone::BrazilDeNoronha),
|
|
372 => Some(TimeZone::BrazilEast),
|
|
373 => Some(TimeZone::BrazilWest),
|
|
374 => Some(TimeZone::CET),
|
|
375 => Some(TimeZone::CST6CDT),
|
|
376 => Some(TimeZone::CanadaAtlantic),
|
|
377 => Some(TimeZone::CanadaCentral),
|
|
378 => Some(TimeZone::CanadaEastern),
|
|
379 => Some(TimeZone::CanadaMountain),
|
|
380 => Some(TimeZone::CanadaNewfoundland),
|
|
381 => Some(TimeZone::CanadaPacific),
|
|
382 => Some(TimeZone::CanadaSaskatchewan),
|
|
383 => Some(TimeZone::CanadaYukon),
|
|
384 => Some(TimeZone::ChileContinental),
|
|
385 => Some(TimeZone::ChileEasterIsland),
|
|
386 => Some(TimeZone::Cuba),
|
|
387 => Some(TimeZone::EET),
|
|
388 => Some(TimeZone::EST),
|
|
389 => Some(TimeZone::EST5EDT),
|
|
390 => Some(TimeZone::Egypt),
|
|
391 => Some(TimeZone::Eire),
|
|
392 => Some(TimeZone::EtcGMT),
|
|
393 => Some(TimeZone::EtcGMTPlus0),
|
|
394 => Some(TimeZone::EtcGMTPlus1),
|
|
395 => Some(TimeZone::EtcGMTPlus10),
|
|
396 => Some(TimeZone::EtcGMTPlus11),
|
|
397 => Some(TimeZone::EtcGMTPlus12),
|
|
398 => Some(TimeZone::EtcGMTPlus2),
|
|
399 => Some(TimeZone::EtcGMTPlus3),
|
|
400 => Some(TimeZone::EtcGMTPlus4),
|
|
401 => Some(TimeZone::EtcGMTPlus5),
|
|
402 => Some(TimeZone::EtcGMTPlus6),
|
|
403 => Some(TimeZone::EtcGMTPlus7),
|
|
404 => Some(TimeZone::EtcGMTPlus8),
|
|
405 => Some(TimeZone::EtcGMTPlus9),
|
|
406 => Some(TimeZone::EtcGMTMinus0),
|
|
407 => Some(TimeZone::EtcGMTMinus1),
|
|
408 => Some(TimeZone::EtcGMTMinus10),
|
|
409 => Some(TimeZone::EtcGMTMinus11),
|
|
410 => Some(TimeZone::EtcGMTMinus12),
|
|
411 => Some(TimeZone::EtcGMTMinus13),
|
|
412 => Some(TimeZone::EtcGMTMinus14),
|
|
413 => Some(TimeZone::EtcGMTMinus2),
|
|
414 => Some(TimeZone::EtcGMTMinus3),
|
|
415 => Some(TimeZone::EtcGMTMinus4),
|
|
416 => Some(TimeZone::EtcGMTMinus5),
|
|
417 => Some(TimeZone::EtcGMTMinus6),
|
|
418 => Some(TimeZone::EtcGMTMinus7),
|
|
419 => Some(TimeZone::EtcGMTMinus8),
|
|
420 => Some(TimeZone::EtcGMTMinus9),
|
|
421 => Some(TimeZone::EtcGMT0),
|
|
422 => Some(TimeZone::EtcGreenwich),
|
|
423 => Some(TimeZone::EtcUCT),
|
|
424 => Some(TimeZone::EtcUTC),
|
|
425 => Some(TimeZone::EtcUniversal),
|
|
426 => Some(TimeZone::EtcZulu),
|
|
427 => Some(TimeZone::EuropeAmsterdam),
|
|
428 => Some(TimeZone::EuropeAndorra),
|
|
429 => Some(TimeZone::EuropeAstrakhan),
|
|
430 => Some(TimeZone::EuropeAthens),
|
|
431 => Some(TimeZone::EuropeBelfast),
|
|
432 => Some(TimeZone::EuropeBelgrade),
|
|
433 => Some(TimeZone::EuropeBerlin),
|
|
434 => Some(TimeZone::EuropeBratislava),
|
|
435 => Some(TimeZone::EuropeBrussels),
|
|
436 => Some(TimeZone::EuropeBucharest),
|
|
437 => Some(TimeZone::EuropeBudapest),
|
|
438 => Some(TimeZone::EuropeBusingen),
|
|
439 => Some(TimeZone::EuropeChisinau),
|
|
440 => Some(TimeZone::EuropeCopenhagen),
|
|
441 => Some(TimeZone::EuropeDublin),
|
|
442 => Some(TimeZone::EuropeGibraltar),
|
|
443 => Some(TimeZone::EuropeGuernsey),
|
|
444 => Some(TimeZone::EuropeHelsinki),
|
|
445 => Some(TimeZone::EuropeIsleOfMan),
|
|
446 => Some(TimeZone::EuropeIstanbul),
|
|
447 => Some(TimeZone::EuropeJersey),
|
|
448 => Some(TimeZone::EuropeKaliningrad),
|
|
449 => Some(TimeZone::EuropeKiev),
|
|
450 => Some(TimeZone::EuropeKirov),
|
|
451 => Some(TimeZone::EuropeKyiv),
|
|
452 => Some(TimeZone::EuropeLisbon),
|
|
453 => Some(TimeZone::EuropeLjubljana),
|
|
454 => Some(TimeZone::EuropeLondon),
|
|
455 => Some(TimeZone::EuropeLuxembourg),
|
|
456 => Some(TimeZone::EuropeMadrid),
|
|
457 => Some(TimeZone::EuropeMalta),
|
|
458 => Some(TimeZone::EuropeMariehamn),
|
|
459 => Some(TimeZone::EuropeMinsk),
|
|
460 => Some(TimeZone::EuropeMonaco),
|
|
461 => Some(TimeZone::EuropeMoscow),
|
|
462 => Some(TimeZone::EuropeNicosia),
|
|
463 => Some(TimeZone::EuropeOslo),
|
|
464 => Some(TimeZone::EuropeParis),
|
|
465 => Some(TimeZone::EuropePodgorica),
|
|
466 => Some(TimeZone::EuropePrague),
|
|
467 => Some(TimeZone::EuropeRiga),
|
|
468 => Some(TimeZone::EuropeRome),
|
|
469 => Some(TimeZone::EuropeSamara),
|
|
470 => Some(TimeZone::EuropeSanMarino),
|
|
471 => Some(TimeZone::EuropeSarajevo),
|
|
472 => Some(TimeZone::EuropeSaratov),
|
|
473 => Some(TimeZone::EuropeSimferopol),
|
|
474 => Some(TimeZone::EuropeSkopje),
|
|
475 => Some(TimeZone::EuropeSofia),
|
|
476 => Some(TimeZone::EuropeStockholm),
|
|
477 => Some(TimeZone::EuropeTallinn),
|
|
478 => Some(TimeZone::EuropeTirane),
|
|
479 => Some(TimeZone::EuropeTiraspol),
|
|
480 => Some(TimeZone::EuropeUlyanovsk),
|
|
481 => Some(TimeZone::EuropeUzhgorod),
|
|
482 => Some(TimeZone::EuropeVaduz),
|
|
483 => Some(TimeZone::EuropeVatican),
|
|
484 => Some(TimeZone::EuropeVienna),
|
|
485 => Some(TimeZone::EuropeVilnius),
|
|
486 => Some(TimeZone::EuropeVolgograd),
|
|
487 => Some(TimeZone::EuropeWarsaw),
|
|
488 => Some(TimeZone::EuropeZagreb),
|
|
489 => Some(TimeZone::EuropeZaporozhye),
|
|
490 => Some(TimeZone::EuropeZurich),
|
|
491 => Some(TimeZone::Factory),
|
|
492 => Some(TimeZone::GB),
|
|
493 => Some(TimeZone::GBEire),
|
|
494 => Some(TimeZone::GMT),
|
|
495 => Some(TimeZone::GMTPlus0),
|
|
496 => Some(TimeZone::GMTMinus0),
|
|
497 => Some(TimeZone::GMT0),
|
|
498 => Some(TimeZone::Greenwich),
|
|
499 => Some(TimeZone::HST),
|
|
500 => Some(TimeZone::Hongkong),
|
|
501 => Some(TimeZone::Iceland),
|
|
502 => Some(TimeZone::IndianAntananarivo),
|
|
503 => Some(TimeZone::IndianChagos),
|
|
504 => Some(TimeZone::IndianChristmas),
|
|
505 => Some(TimeZone::IndianCocos),
|
|
506 => Some(TimeZone::IndianComoro),
|
|
507 => Some(TimeZone::IndianKerguelen),
|
|
508 => Some(TimeZone::IndianMahe),
|
|
509 => Some(TimeZone::IndianMaldives),
|
|
510 => Some(TimeZone::IndianMauritius),
|
|
511 => Some(TimeZone::IndianMayotte),
|
|
512 => Some(TimeZone::IndianReunion),
|
|
513 => Some(TimeZone::Iran),
|
|
514 => Some(TimeZone::Israel),
|
|
515 => Some(TimeZone::Jamaica),
|
|
516 => Some(TimeZone::Japan),
|
|
517 => Some(TimeZone::Kwajalein),
|
|
518 => Some(TimeZone::Libya),
|
|
519 => Some(TimeZone::MET),
|
|
520 => Some(TimeZone::MST),
|
|
521 => Some(TimeZone::MST7MDT),
|
|
522 => Some(TimeZone::MexicoBajaNorte),
|
|
523 => Some(TimeZone::MexicoBajaSur),
|
|
524 => Some(TimeZone::MexicoGeneral),
|
|
525 => Some(TimeZone::NZ),
|
|
526 => Some(TimeZone::NZCHAT),
|
|
527 => Some(TimeZone::Navajo),
|
|
528 => Some(TimeZone::PRC),
|
|
529 => Some(TimeZone::PST8PDT),
|
|
530 => Some(TimeZone::PacificApia),
|
|
531 => Some(TimeZone::PacificAuckland),
|
|
532 => Some(TimeZone::PacificBougainville),
|
|
533 => Some(TimeZone::PacificChatham),
|
|
534 => Some(TimeZone::PacificChuuk),
|
|
535 => Some(TimeZone::PacificEaster),
|
|
536 => Some(TimeZone::PacificEfate),
|
|
537 => Some(TimeZone::PacificEnderbury),
|
|
538 => Some(TimeZone::PacificFakaofo),
|
|
539 => Some(TimeZone::PacificFiji),
|
|
540 => Some(TimeZone::PacificFunafuti),
|
|
541 => Some(TimeZone::PacificGalapagos),
|
|
542 => Some(TimeZone::PacificGambier),
|
|
543 => Some(TimeZone::PacificGuadalcanal),
|
|
544 => Some(TimeZone::PacificGuam),
|
|
545 => Some(TimeZone::PacificHonolulu),
|
|
546 => Some(TimeZone::PacificJohnston),
|
|
547 => Some(TimeZone::PacificKanton),
|
|
548 => Some(TimeZone::PacificKiritimati),
|
|
549 => Some(TimeZone::PacificKosrae),
|
|
550 => Some(TimeZone::PacificKwajalein),
|
|
551 => Some(TimeZone::PacificMajuro),
|
|
552 => Some(TimeZone::PacificMarquesas),
|
|
553 => Some(TimeZone::PacificMidway),
|
|
554 => Some(TimeZone::PacificNauru),
|
|
555 => Some(TimeZone::PacificNiue),
|
|
556 => Some(TimeZone::PacificNorfolk),
|
|
557 => Some(TimeZone::PacificNoumea),
|
|
558 => Some(TimeZone::PacificPagoPago),
|
|
559 => Some(TimeZone::PacificPalau),
|
|
560 => Some(TimeZone::PacificPitcairn),
|
|
561 => Some(TimeZone::PacificPohnpei),
|
|
562 => Some(TimeZone::PacificPonape),
|
|
563 => Some(TimeZone::PacificPortMoresby),
|
|
564 => Some(TimeZone::PacificRarotonga),
|
|
565 => Some(TimeZone::PacificSaipan),
|
|
566 => Some(TimeZone::PacificSamoa),
|
|
567 => Some(TimeZone::PacificTahiti),
|
|
568 => Some(TimeZone::PacificTarawa),
|
|
569 => Some(TimeZone::PacificTongatapu),
|
|
570 => Some(TimeZone::PacificTruk),
|
|
571 => Some(TimeZone::PacificWake),
|
|
572 => Some(TimeZone::PacificWallis),
|
|
573 => Some(TimeZone::PacificYap),
|
|
574 => Some(TimeZone::Poland),
|
|
575 => Some(TimeZone::Portugal),
|
|
576 => Some(TimeZone::ROC),
|
|
577 => Some(TimeZone::ROK),
|
|
578 => Some(TimeZone::Singapore),
|
|
579 => Some(TimeZone::Turkey),
|
|
580 => Some(TimeZone::UCT),
|
|
581 => Some(TimeZone::USAlaska),
|
|
582 => Some(TimeZone::USAleutian),
|
|
583 => Some(TimeZone::USArizona),
|
|
584 => Some(TimeZone::USCentral),
|
|
585 => Some(TimeZone::USEastIndiana),
|
|
586 => Some(TimeZone::USEastern),
|
|
587 => Some(TimeZone::USHawaii),
|
|
588 => Some(TimeZone::USIndianaStarke),
|
|
589 => Some(TimeZone::USMichigan),
|
|
590 => Some(TimeZone::USMountain),
|
|
591 => Some(TimeZone::USPacific),
|
|
592 => Some(TimeZone::USSamoa),
|
|
593 => Some(TimeZone::UTC),
|
|
594 => Some(TimeZone::Universal),
|
|
595 => Some(TimeZone::WSU),
|
|
596 => Some(TimeZone::WET),
|
|
597 => Some(TimeZone::Zulu),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 598;
|
|
}
|
|
|
|
impl serde::Serialize for TimeZone {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TimeZone {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TlsCipherSuite {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"tls13-aes-256-gcm-sha384" => TlsCipherSuite::Tls13Aes256GcmSha384,
|
|
b"tls13-aes-128-gcm-sha256" => TlsCipherSuite::Tls13Aes128GcmSha256,
|
|
b"tls13-chacha20-poly1305-sha256" => TlsCipherSuite::Tls13Chacha20Poly1305Sha256,
|
|
b"tls-ecdhe-ecdsa-with-aes-256-gcm-sha384" => TlsCipherSuite::TlsEcdheEcdsaWithAes256GcmSha384,
|
|
b"tls-ecdhe-ecdsa-with-aes-128-gcm-sha256" => TlsCipherSuite::TlsEcdheEcdsaWithAes128GcmSha256,
|
|
b"tls-ecdhe-ecdsa-with-chacha20-poly1305-sha256" => TlsCipherSuite::TlsEcdheEcdsaWithChacha20Poly1305Sha256,
|
|
b"tls-ecdhe-rsa-with-aes-256-gcm-sha384" => TlsCipherSuite::TlsEcdheRsaWithAes256GcmSha384,
|
|
b"tls-ecdhe-rsa-with-aes-128-gcm-sha256" => TlsCipherSuite::TlsEcdheRsaWithAes128GcmSha256,
|
|
b"tls-ecdhe-rsa-with-chacha20-poly1305-sha256" => TlsCipherSuite::TlsEcdheRsaWithChacha20Poly1305Sha256,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TlsCipherSuite::Tls13Aes256GcmSha384 => "tls13-aes-256-gcm-sha384",
|
|
TlsCipherSuite::Tls13Aes128GcmSha256 => "tls13-aes-128-gcm-sha256",
|
|
TlsCipherSuite::Tls13Chacha20Poly1305Sha256 => "tls13-chacha20-poly1305-sha256",
|
|
TlsCipherSuite::TlsEcdheEcdsaWithAes256GcmSha384 => {
|
|
"tls-ecdhe-ecdsa-with-aes-256-gcm-sha384"
|
|
}
|
|
TlsCipherSuite::TlsEcdheEcdsaWithAes128GcmSha256 => {
|
|
"tls-ecdhe-ecdsa-with-aes-128-gcm-sha256"
|
|
}
|
|
TlsCipherSuite::TlsEcdheEcdsaWithChacha20Poly1305Sha256 => {
|
|
"tls-ecdhe-ecdsa-with-chacha20-poly1305-sha256"
|
|
}
|
|
TlsCipherSuite::TlsEcdheRsaWithAes256GcmSha384 => {
|
|
"tls-ecdhe-rsa-with-aes-256-gcm-sha384"
|
|
}
|
|
TlsCipherSuite::TlsEcdheRsaWithAes128GcmSha256 => {
|
|
"tls-ecdhe-rsa-with-aes-128-gcm-sha256"
|
|
}
|
|
TlsCipherSuite::TlsEcdheRsaWithChacha20Poly1305Sha256 => {
|
|
"tls-ecdhe-rsa-with-chacha20-poly1305-sha256"
|
|
}
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TlsCipherSuite::Tls13Aes256GcmSha384),
|
|
1 => Some(TlsCipherSuite::Tls13Aes128GcmSha256),
|
|
2 => Some(TlsCipherSuite::Tls13Chacha20Poly1305Sha256),
|
|
3 => Some(TlsCipherSuite::TlsEcdheEcdsaWithAes256GcmSha384),
|
|
4 => Some(TlsCipherSuite::TlsEcdheEcdsaWithAes128GcmSha256),
|
|
5 => Some(TlsCipherSuite::TlsEcdheEcdsaWithChacha20Poly1305Sha256),
|
|
6 => Some(TlsCipherSuite::TlsEcdheRsaWithAes256GcmSha384),
|
|
7 => Some(TlsCipherSuite::TlsEcdheRsaWithAes128GcmSha256),
|
|
8 => Some(TlsCipherSuite::TlsEcdheRsaWithChacha20Poly1305Sha256),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 9;
|
|
}
|
|
|
|
impl serde::Serialize for TlsCipherSuite {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TlsCipherSuite {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TlsPolicyType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"tlsa" => TlsPolicyType::Tlsa,
|
|
b"sts" => TlsPolicyType::Sts,
|
|
b"noPolicyFound" => TlsPolicyType::NoPolicyFound,
|
|
b"other" => TlsPolicyType::Other,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TlsPolicyType::Tlsa => "tlsa",
|
|
TlsPolicyType::Sts => "sts",
|
|
TlsPolicyType::NoPolicyFound => "noPolicyFound",
|
|
TlsPolicyType::Other => "other",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TlsPolicyType::Tlsa),
|
|
1 => Some(TlsPolicyType::Sts),
|
|
2 => Some(TlsPolicyType::NoPolicyFound),
|
|
3 => Some(TlsPolicyType::Other),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 4;
|
|
}
|
|
|
|
impl serde::Serialize for TlsPolicyType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TlsPolicyType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TlsResultType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"startTlsNotSupported" => TlsResultType::StartTlsNotSupported,
|
|
b"certificateHostMismatch" => TlsResultType::CertificateHostMismatch,
|
|
b"certificateExpired" => TlsResultType::CertificateExpired,
|
|
b"certificateNotTrusted" => TlsResultType::CertificateNotTrusted,
|
|
b"validationFailure" => TlsResultType::ValidationFailure,
|
|
b"tlsaInvalid" => TlsResultType::TlsaInvalid,
|
|
b"dnssecInvalid" => TlsResultType::DnssecInvalid,
|
|
b"daneRequired" => TlsResultType::DaneRequired,
|
|
b"stsPolicyFetchError" => TlsResultType::StsPolicyFetchError,
|
|
b"stsPolicyInvalid" => TlsResultType::StsPolicyInvalid,
|
|
b"stsWebpkiInvalid" => TlsResultType::StsWebpkiInvalid,
|
|
b"other" => TlsResultType::Other,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TlsResultType::StartTlsNotSupported => "startTlsNotSupported",
|
|
TlsResultType::CertificateHostMismatch => "certificateHostMismatch",
|
|
TlsResultType::CertificateExpired => "certificateExpired",
|
|
TlsResultType::CertificateNotTrusted => "certificateNotTrusted",
|
|
TlsResultType::ValidationFailure => "validationFailure",
|
|
TlsResultType::TlsaInvalid => "tlsaInvalid",
|
|
TlsResultType::DnssecInvalid => "dnssecInvalid",
|
|
TlsResultType::DaneRequired => "daneRequired",
|
|
TlsResultType::StsPolicyFetchError => "stsPolicyFetchError",
|
|
TlsResultType::StsPolicyInvalid => "stsPolicyInvalid",
|
|
TlsResultType::StsWebpkiInvalid => "stsWebpkiInvalid",
|
|
TlsResultType::Other => "other",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TlsResultType::StartTlsNotSupported),
|
|
1 => Some(TlsResultType::CertificateHostMismatch),
|
|
2 => Some(TlsResultType::CertificateExpired),
|
|
3 => Some(TlsResultType::CertificateNotTrusted),
|
|
4 => Some(TlsResultType::ValidationFailure),
|
|
5 => Some(TlsResultType::TlsaInvalid),
|
|
6 => Some(TlsResultType::DnssecInvalid),
|
|
7 => Some(TlsResultType::DaneRequired),
|
|
8 => Some(TlsResultType::StsPolicyFetchError),
|
|
9 => Some(TlsResultType::StsPolicyInvalid),
|
|
10 => Some(TlsResultType::StsWebpkiInvalid),
|
|
11 => Some(TlsResultType::Other),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 12;
|
|
}
|
|
|
|
impl serde::Serialize for TlsResultType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TlsResultType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TlsVersion {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"tls12" => TlsVersion::Tls12,
|
|
b"tls13" => TlsVersion::Tls13,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TlsVersion::Tls12 => "tls12",
|
|
TlsVersion::Tls13 => "tls13",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TlsVersion::Tls12),
|
|
1 => Some(TlsVersion::Tls13),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for TlsVersion {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TlsVersion {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TraceValueType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"String" => TraceValueType::String,
|
|
b"UnsignedInt" => TraceValueType::UnsignedInt,
|
|
b"Integer" => TraceValueType::Integer,
|
|
b"Boolean" => TraceValueType::Boolean,
|
|
b"Float" => TraceValueType::Float,
|
|
b"UTCDateTime" => TraceValueType::UTCDateTime,
|
|
b"Duration" => TraceValueType::Duration,
|
|
b"IpAddr" => TraceValueType::IpAddr,
|
|
b"List" => TraceValueType::List,
|
|
b"Event" => TraceValueType::Event,
|
|
b"Null" => TraceValueType::Null,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TraceValueType::String => "String",
|
|
TraceValueType::UnsignedInt => "UnsignedInt",
|
|
TraceValueType::Integer => "Integer",
|
|
TraceValueType::Boolean => "Boolean",
|
|
TraceValueType::Float => "Float",
|
|
TraceValueType::UTCDateTime => "UTCDateTime",
|
|
TraceValueType::Duration => "Duration",
|
|
TraceValueType::IpAddr => "IpAddr",
|
|
TraceValueType::List => "List",
|
|
TraceValueType::Event => "Event",
|
|
TraceValueType::Null => "Null",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TraceValueType::String),
|
|
1 => Some(TraceValueType::UnsignedInt),
|
|
2 => Some(TraceValueType::Integer),
|
|
3 => Some(TraceValueType::Boolean),
|
|
4 => Some(TraceValueType::Float),
|
|
5 => Some(TraceValueType::UTCDateTime),
|
|
6 => Some(TraceValueType::Duration),
|
|
7 => Some(TraceValueType::IpAddr),
|
|
8 => Some(TraceValueType::List),
|
|
9 => Some(TraceValueType::Event),
|
|
10 => Some(TraceValueType::Null),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 11;
|
|
}
|
|
|
|
impl serde::Serialize for TraceValueType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TraceValueType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TracerType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Log" => TracerType::Log,
|
|
b"Stdout" => TracerType::Stdout,
|
|
b"Journal" => TracerType::Journal,
|
|
b"OtelHttp" => TracerType::OtelHttp,
|
|
b"OtelGrpc" => TracerType::OtelGrpc,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TracerType::Log => "Log",
|
|
TracerType::Stdout => "Stdout",
|
|
TracerType::Journal => "Journal",
|
|
TracerType::OtelHttp => "OtelHttp",
|
|
TracerType::OtelGrpc => "OtelGrpc",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TracerType::Log),
|
|
1 => Some(TracerType::Stdout),
|
|
2 => Some(TracerType::Journal),
|
|
3 => Some(TracerType::OtelHttp),
|
|
4 => Some(TracerType::OtelGrpc),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for TracerType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TracerType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TracingLevel {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"error" => TracingLevel::Error,
|
|
b"warn" => TracingLevel::Warn,
|
|
b"info" => TracingLevel::Info,
|
|
b"debug" => TracingLevel::Debug,
|
|
b"trace" => TracingLevel::Trace,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TracingLevel::Error => "error",
|
|
TracingLevel::Warn => "warn",
|
|
TracingLevel::Info => "info",
|
|
TracingLevel::Debug => "debug",
|
|
TracingLevel::Trace => "trace",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TracingLevel::Error),
|
|
1 => Some(TracingLevel::Warn),
|
|
2 => Some(TracingLevel::Info),
|
|
3 => Some(TracingLevel::Debug),
|
|
4 => Some(TracingLevel::Trace),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for TracingLevel {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TracingLevel {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TracingLevelOpt {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"disable" => TracingLevelOpt::Disable,
|
|
b"error" => TracingLevelOpt::Error,
|
|
b"warn" => TracingLevelOpt::Warn,
|
|
b"info" => TracingLevelOpt::Info,
|
|
b"debug" => TracingLevelOpt::Debug,
|
|
b"trace" => TracingLevelOpt::Trace,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TracingLevelOpt::Disable => "disable",
|
|
TracingLevelOpt::Error => "error",
|
|
TracingLevelOpt::Warn => "warn",
|
|
TracingLevelOpt::Info => "info",
|
|
TracingLevelOpt::Debug => "debug",
|
|
TracingLevelOpt::Trace => "trace",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TracingLevelOpt::Disable),
|
|
1 => Some(TracingLevelOpt::Error),
|
|
2 => Some(TracingLevelOpt::Warn),
|
|
3 => Some(TracingLevelOpt::Info),
|
|
4 => Some(TracingLevelOpt::Debug),
|
|
5 => Some(TracingLevelOpt::Trace),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 6;
|
|
}
|
|
|
|
impl serde::Serialize for TracingLevelOpt {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TracingLevelOpt {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TracingStoreType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"Disabled" => TracingStoreType::Disabled,
|
|
b"Default" => TracingStoreType::Default,
|
|
b"FoundationDb" => TracingStoreType::FoundationDb,
|
|
b"PostgreSql" => TracingStoreType::PostgreSql,
|
|
b"MySql" => TracingStoreType::MySql,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TracingStoreType::Disabled => "Disabled",
|
|
TracingStoreType::Default => "Default",
|
|
TracingStoreType::FoundationDb => "FoundationDb",
|
|
TracingStoreType::PostgreSql => "PostgreSql",
|
|
TracingStoreType::MySql => "MySql",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TracingStoreType::Disabled),
|
|
1 => Some(TracingStoreType::Default),
|
|
2 => Some(TracingStoreType::FoundationDb),
|
|
3 => Some(TracingStoreType::PostgreSql),
|
|
4 => Some(TracingStoreType::MySql),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 5;
|
|
}
|
|
|
|
impl serde::Serialize for TracingStoreType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TracingStoreType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for TsigAlgorithm {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"hmac-md5" => TsigAlgorithm::HmacMd5,
|
|
b"gss" => TsigAlgorithm::Gss,
|
|
b"hmac-sha1" => TsigAlgorithm::HmacSha1,
|
|
b"hmac-sha224" => TsigAlgorithm::HmacSha224,
|
|
b"hmac-sha256" => TsigAlgorithm::HmacSha256,
|
|
b"hmac-sha256-128" => TsigAlgorithm::HmacSha256128,
|
|
b"hmac-sha384" => TsigAlgorithm::HmacSha384,
|
|
b"hmac-sha384-192" => TsigAlgorithm::HmacSha384192,
|
|
b"hmac-sha512" => TsigAlgorithm::HmacSha512,
|
|
b"hmac-sha512-256" => TsigAlgorithm::HmacSha512256,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
TsigAlgorithm::HmacMd5 => "hmac-md5",
|
|
TsigAlgorithm::Gss => "gss",
|
|
TsigAlgorithm::HmacSha1 => "hmac-sha1",
|
|
TsigAlgorithm::HmacSha224 => "hmac-sha224",
|
|
TsigAlgorithm::HmacSha256 => "hmac-sha256",
|
|
TsigAlgorithm::HmacSha256128 => "hmac-sha256-128",
|
|
TsigAlgorithm::HmacSha384 => "hmac-sha384",
|
|
TsigAlgorithm::HmacSha384192 => "hmac-sha384-192",
|
|
TsigAlgorithm::HmacSha512 => "hmac-sha512",
|
|
TsigAlgorithm::HmacSha512256 => "hmac-sha512-256",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(TsigAlgorithm::HmacMd5),
|
|
1 => Some(TsigAlgorithm::Gss),
|
|
2 => Some(TsigAlgorithm::HmacSha1),
|
|
3 => Some(TsigAlgorithm::HmacSha224),
|
|
4 => Some(TsigAlgorithm::HmacSha256),
|
|
5 => Some(TsigAlgorithm::HmacSha256128),
|
|
6 => Some(TsigAlgorithm::HmacSha384),
|
|
7 => Some(TsigAlgorithm::HmacSha384192),
|
|
8 => Some(TsigAlgorithm::HmacSha512),
|
|
9 => Some(TsigAlgorithm::HmacSha512256),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 10;
|
|
}
|
|
|
|
impl serde::Serialize for TsigAlgorithm {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for TsigAlgorithm {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for UserRolesType {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"User" => UserRolesType::User,
|
|
b"Admin" => UserRolesType::Admin,
|
|
b"Custom" => UserRolesType::Custom,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
UserRolesType::User => "User",
|
|
UserRolesType::Admin => "Admin",
|
|
UserRolesType::Custom => "Custom",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(UserRolesType::User),
|
|
1 => Some(UserRolesType::Admin),
|
|
2 => Some(UserRolesType::Custom),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 3;
|
|
}
|
|
|
|
impl serde::Serialize for UserRolesType {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for UserRolesType {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|
|
|
|
impl EnumImpl for VCardVersion {
|
|
fn parse(value: &str) -> Option<Self> {
|
|
hashify::tiny_map! {
|
|
value.as_bytes(),
|
|
b"v4" => VCardVersion::V4,
|
|
b"v3" => VCardVersion::V3,
|
|
}
|
|
}
|
|
|
|
fn as_str(&self) -> &'static str {
|
|
match self {
|
|
VCardVersion::V4 => "v4",
|
|
VCardVersion::V3 => "v3",
|
|
}
|
|
}
|
|
|
|
fn to_id(&self) -> u16 {
|
|
*self as u16
|
|
}
|
|
|
|
fn from_id(id: u16) -> Option<Self> {
|
|
match id {
|
|
0 => Some(VCardVersion::V4),
|
|
1 => Some(VCardVersion::V3),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
const COUNT: usize = 2;
|
|
}
|
|
|
|
impl serde::Serialize for VCardVersion {
|
|
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
serializer.serialize_str(self.as_str())
|
|
}
|
|
}
|
|
|
|
impl<'de> serde::Deserialize<'de> for VCardVersion {
|
|
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
where
|
|
D: serde::Deserializer<'de>,
|
|
{
|
|
let s = Cow::<str>::deserialize(deserializer)?;
|
|
Self::parse(&s).ok_or_else(|| serde::de::Error::unknown_variant(&s, &[]))
|
|
}
|
|
}
|