pub enum UserRole {
User,
Creator,
Admin,
}Expand description
User role in the system.
§Examples
use chie_shared::UserRole;
// Role-based access control
let user_role = UserRole::Creator;
assert_eq!(user_role.to_string(), "Creator");
// Permission checking
let can_upload = matches!(user_role, UserRole::Creator | UserRole::Admin);
assert!(can_upload);
// Admin privileges
let admin_role = UserRole::Admin;
let is_admin = admin_role == UserRole::Admin;
assert!(is_admin);
// Serialization for JWT claims
let json = serde_json::to_string(&user_role).unwrap();
assert_eq!(json, "\"CREATOR\"");Variants§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for UserRole
impl<'de> Deserialize<'de> for UserRole
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl FromSqlEnum for UserRole
impl FromSqlEnum for UserRole
Source§fn from_sql_enum(s: &str) -> Option<Self>
fn from_sql_enum(s: &str) -> Option<Self>
Parse from SQL enum value.
Source§impl ToSqlEnum for UserRole
impl ToSqlEnum for UserRole
Source§fn to_sql_enum(&self) -> &'static str
fn to_sql_enum(&self) -> &'static str
Get the SQL enum value as a string.
impl Copy for UserRole
impl Eq for UserRole
impl StructuralPartialEq for UserRole
Auto Trait Implementations§
impl Freeze for UserRole
impl RefUnwindSafe for UserRole
impl Send for UserRole
impl Sync for UserRole
impl Unpin for UserRole
impl UnwindSafe for UserRole
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more