use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum IdentityProviderLinkingStrategy {
#[serde(rename = "CreatePendingLink")]
CreatePendingLink,
#[serde(rename = "Disabled")]
Disabled,
#[serde(rename = "LinkAnonymously")]
LinkAnonymously,
#[serde(rename = "LinkByEmail")]
LinkByEmail,
#[serde(rename = "LinkByEmailForExistingUser")]
LinkByEmailForExistingUser,
#[serde(rename = "LinkByUsername")]
LinkByUsername,
#[serde(rename = "LinkByUsernameForExistingUser")]
LinkByUsernameForExistingUser,
#[serde(rename = "Unsupported")]
Unsupported,
}
impl std::fmt::Display for IdentityProviderLinkingStrategy {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::CreatePendingLink => write!(f, "CreatePendingLink"),
Self::Disabled => write!(f, "Disabled"),
Self::LinkAnonymously => write!(f, "LinkAnonymously"),
Self::LinkByEmail => write!(f, "LinkByEmail"),
Self::LinkByEmailForExistingUser => write!(f, "LinkByEmailForExistingUser"),
Self::LinkByUsername => write!(f, "LinkByUsername"),
Self::LinkByUsernameForExistingUser => write!(f, "LinkByUsernameForExistingUser"),
Self::Unsupported => write!(f, "Unsupported"),
}
}
}
impl Default for IdentityProviderLinkingStrategy {
fn default() -> IdentityProviderLinkingStrategy {
Self::CreatePendingLink
}
}