#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub struct CredentialUser {
pub username: String,
}
impl CredentialUser {
pub fn new(username: &str) -> Self {
Self {
username: username.into(),
}
}
}
#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub struct CredentialEmail {
pub email: String,
}
#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub struct CredentialToken {
pub data: String,
}
#[derive(Debug, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub enum Credential {
Anon(String),
User(CredentialUser),
UserEmail(CredentialEmail),
Token(CredentialToken),
}
impl From<CredentialUser> for Credential {
fn from(x: CredentialUser) -> Self {
Credential::User(x)
}
}
impl From<CredentialEmail> for Credential {
fn from(x: CredentialEmail) -> Self {
Credential::UserEmail(x)
}
}