use serde_repr::{Deserialize_repr, Serialize_repr};
use crate::{impl_default, impl_display};
/// Represents a user role.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Deserialize_repr, Serialize_repr)]
#[repr(u64)]
pub enum Role {
/// Represents a `Organization owner` role.
OrganizationOwner = 100,
/// Represents a `Organization administrator` bot.
OrganizationAdministrator = 200,
/// Represents a `Organization moderator` bot.
OrganizationModerator = 300,
/// Represents a `Member` bot.
Member = 400,
/// Represents a `Guest` bot.
Guest = 600,
}
impl Role {
/// Creates a new [Role].
pub const fn new() -> Self {
Self::OrganizationOwner
}
}
impl_default!(Role);
impl_display!(Role);