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 for Role { type Error = UnsupportedEnumValue; fn try_from(value: u8) -> Result { 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 } }