brass/db/src/models/role.rs

32 lines
689 B
Rust

use crate::UnsupportedEnumValue;
#[derive(sqlx::Type, Debug, Clone, Copy, PartialEq)]
#[sqlx(type_name = "role", rename_all = "lowercase")]
pub enum Role {
Staff = 1,
AreaManager = 10,
Admin = 100,
}
impl TryFrom<u8> for Role {
type Error = UnsupportedEnumValue;
fn try_from(value: u8) -> Result<Self, Self::Error> {
match value {
1 => Ok(Role::Staff),
10 => Ok(Role::AreaManager),
100 => Ok(Role::Admin),
_ => Err(UnsupportedEnumValue {
value,
enum_name: "Role",
}),
}
}
}
impl Default for Role {
fn default() -> Self {
Self::Staff
}
}