use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum GroupPermissions {
#[serde(rename = "*")]
group_all,
#[serde(rename = "group-announcement-manage")]
group_announcement_manage,
#[serde(rename = "group-audit-view")]
group_audit_view,
#[serde(rename = "group-bans-manage")]
group_bans_manage,
#[serde(rename = "group-calendar-manage")]
group_calendar_manage,
#[serde(rename = "group-data-manage")]
group_data_manage,
#[serde(rename = "group-default-role-manage")]
group_default_role_manage,
#[serde(rename = "group-galleries-manage")]
group_galleries_manage,
#[serde(rename = "group-instance-age-gated-create")]
group_instance_age_gated_create,
#[serde(rename = "group-instance-announcement-create")]
group_instance_announcement_create,
#[serde(rename = "group-instance-bypass-avatar-performance")]
group_instance_bypass_avatar_performance,
#[serde(rename = "group-instance-calendar-link")]
group_instance_calendar_link,
#[serde(rename = "group-instance-join")]
group_instance_join,
#[serde(rename = "group-instance-manage")]
group_instance_manage,
#[serde(rename = "group-instance-moderate")]
group_instance_moderate,
#[serde(rename = "group-instance-open-create")]
group_instance_open_create,
#[serde(rename = "group-instance-plus-create")]
group_instance_plus_create,
#[serde(rename = "group-instance-plus-portal")]
group_instance_plus_portal,
#[serde(rename = "group-instance-plus-portal-unlocked")]
group_instance_plus_portal_unlocked,
#[serde(rename = "group-instance-public-create")]
group_instance_public_create,
#[serde(rename = "group-instance-queue-priority")]
group_instance_queue_priority,
#[serde(rename = "group-instance-restricted-create")]
group_instance_restricted_create,
#[serde(rename = "group-invites-manage")]
group_invites_manage,
#[serde(rename = "group-members-manage")]
group_members_manage,
#[serde(rename = "group-members-remove")]
group_members_remove,
#[serde(rename = "group-members-viewall")]
group_members_viewall,
#[serde(rename = "group-roles-assign")]
group_roles_assign,
#[serde(rename = "group-roles-manage")]
group_roles_manage,
}
impl std::fmt::Display for GroupPermissions {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::group_all => write!(f, "*"),
Self::group_announcement_manage => write!(f, "group-announcement-manage"),
Self::group_audit_view => write!(f, "group-audit-view"),
Self::group_bans_manage => write!(f, "group-bans-manage"),
Self::group_calendar_manage => write!(f, "group-calendar-manage"),
Self::group_data_manage => write!(f, "group-data-manage"),
Self::group_default_role_manage => write!(f, "group-default-role-manage"),
Self::group_galleries_manage => write!(f, "group-galleries-manage"),
Self::group_instance_age_gated_create => write!(f, "group-instance-age-gated-create"),
Self::group_instance_announcement_create => {
write!(f, "group-instance-announcement-create")
}
Self::group_instance_bypass_avatar_performance => {
write!(f, "group-instance-bypass-avatar-performance")
}
Self::group_instance_calendar_link => write!(f, "group-instance-calendar-link"),
Self::group_instance_join => write!(f, "group-instance-join"),
Self::group_instance_manage => write!(f, "group-instance-manage"),
Self::group_instance_moderate => write!(f, "group-instance-moderate"),
Self::group_instance_open_create => write!(f, "group-instance-open-create"),
Self::group_instance_plus_create => write!(f, "group-instance-plus-create"),
Self::group_instance_plus_portal => write!(f, "group-instance-plus-portal"),
Self::group_instance_plus_portal_unlocked => {
write!(f, "group-instance-plus-portal-unlocked")
}
Self::group_instance_public_create => write!(f, "group-instance-public-create"),
Self::group_instance_queue_priority => write!(f, "group-instance-queue-priority"),
Self::group_instance_restricted_create => write!(f, "group-instance-restricted-create"),
Self::group_invites_manage => write!(f, "group-invites-manage"),
Self::group_members_manage => write!(f, "group-members-manage"),
Self::group_members_remove => write!(f, "group-members-remove"),
Self::group_members_viewall => write!(f, "group-members-viewall"),
Self::group_roles_assign => write!(f, "group-roles-assign"),
Self::group_roles_manage => write!(f, "group-roles-manage"),
}
}
}
impl Default for GroupPermissions {
fn default() -> GroupPermissions {
Self::group_all
}
}