use super::{
CurveName, DeletionRecoveryLevel, EncryptionAlgorithm, KeyEncryptionAlgorithm, KeyOperation,
KeyRotationPolicyAction, KeyType, SignatureAlgorithm,
};
use serde::{Deserialize, Deserializer, Serialize, Serializer};
impl<'de> Deserialize<'de> for CurveName {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for CurveName {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}
impl<'de> Deserialize<'de> for DeletionRecoveryLevel {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for DeletionRecoveryLevel {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}
impl<'de> Deserialize<'de> for EncryptionAlgorithm {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for EncryptionAlgorithm {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}
impl<'de> Deserialize<'de> for KeyEncryptionAlgorithm {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for KeyEncryptionAlgorithm {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}
impl<'de> Deserialize<'de> for KeyOperation {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for KeyOperation {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}
impl<'de> Deserialize<'de> for KeyRotationPolicyAction {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for KeyRotationPolicyAction {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}
impl<'de> Deserialize<'de> for KeyType {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for KeyType {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}
impl<'de> Deserialize<'de> for SignatureAlgorithm {
fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
s.parse().map_err(serde::de::Error::custom)
}
}
impl Serialize for SignatureAlgorithm {
fn serialize<S>(&self, s: S) -> ::core::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(self.as_ref())
}
}