#[derive(Clone)]
pub enum UserAction {
Access,
Log(String),
Request(String),
View(String),
List(String),
Profile(String),
Other,
}
impl Default for UserAction {
fn default() -> Self {
UserAction::Other
}
}
impl std::fmt::Display for UserAction {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
UserAction::Access => write!(f,"access"),
UserAction::Log(info) =>write!(f,"log: {}", info),
UserAction::Request(info) =>write!(f,"request: {}", info),
UserAction::View(info) => write!(f,"view: {}", info),
UserAction::List(info) => write!(f,"list: {}", info),
UserAction::Profile( info) => write!(f,"profile: {}", info),
UserAction::Other => write!(f,"other"),
}
}
}
impl UserAction {
#[allow(dead_code)]
pub fn from_str(value: &str, info: String) -> UserAction {
match value {
"access" | "Access" => UserAction::Access,
"log" | "Log" => UserAction::Log(info),
"request" | "Request" => UserAction::Request(info),
"view" | "View" => UserAction::View(info),
"list" | "List" => UserAction::List(info),
"profile" | "Profile " => UserAction::Profile(info),
"other" | "Other " => UserAction::Other,
_ => UserAction::default(),
}
}
#[allow(dead_code)]
pub fn info(&self) -> String {
match self {
UserAction::Access => String::from(""),
UserAction::Log(info) => info.to_owned(),
UserAction::Request(info) => info.to_owned(),
UserAction::View(info) => info.to_owned(),
UserAction::List(info) => info.to_owned(),
UserAction::Profile(info) => info.to_owned(),
UserAction::Other => String::from(""),
}
}
}