use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum PublicKey {
#[serde(rename="ed25519")]
Ed25519(Box<models::PublicKeyEd25519>),
#[serde(rename="secp256k1_ecdsa")]
Secp256k1Ecdsa(Box<models::PublicKeySecp256k1Ecdsa>),
#[serde(rename="secp256r1_ecdsa")]
Secp256r1Ecdsa(Box<models::PublicKeySecp256r1Ecdsa>),
#[serde(rename="keyless")]
Keyless(Box<models::PublicKeyKeyless>),
#[serde(rename="federated_keyless")]
FederatedKeyless(Box<models::PublicKeyFederatedKeyless>),
}
impl Default for PublicKey {
fn default() -> Self {
Self::Ed25519(Default::default())
}
}