use std::fmt::Display;
use serde::Serialize;
#[derive(Debug, Serialize, Clone, Copy, PartialEq)]
#[serde(rename_all = "lowercase")]
pub enum Account {
Super,
User1,
User2,
User3,
}
impl Display for Account {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Account::Super => write!(f, "super"),
Account::User1 => write!(f, "user1"),
Account::User2 => write!(f, "user2"),
Account::User3 => write!(f, "user3"),
}
}
}
impl AsRef<str> for Account {
fn as_ref(&self) -> &str {
match self {
Account::Super => "super",
Account::User1 => "user1",
Account::User2 => "user2",
Account::User3 => "user3",
}
}
}
impl From<Users> for Account {
fn from(user: Users) -> Self {
match user {
Users::User1 => Account::User1,
Users::User2 => Account::User2,
Users::User3 => Account::User3,
}
}
}
#[derive(Debug, Serialize, Clone, Copy, PartialEq)]
#[serde(rename_all = "lowercase")]
pub enum Users {
User1,
User2,
User3,
}
impl Display for Users {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Users::User1 => write!(f, "user1"),
Users::User2 => write!(f, "user2"),
Users::User3 => write!(f, "user3"),
}
}
}
impl AsRef<str> for Users {
fn as_ref(&self) -> &str {
match self {
Users::User1 => "user1",
Users::User2 => "user2",
Users::User3 => "user3",
}
}
}