Add from_vec()

Calculates a PermissionFlags Stirng from a Vec<PermissionFlags>.
This commit is contained in:
bitfl0wer 2023-06-09 21:34:54 +02:00
parent 76e038b103
commit 777746bc00
1 changed files with 26 additions and 0 deletions

View File

@ -106,4 +106,30 @@ impl PermissionFlags {
pub fn has_permission(&self, permission: PermissionFlags) -> bool { pub fn has_permission(&self, permission: PermissionFlags) -> bool {
self.contains(permission) || self.contains(PermissionFlags::ADMINISTRATOR) self.contains(permission) || self.contains(PermissionFlags::ADMINISTRATOR)
} }
pub fn to_string(&self) -> String {
self.bits().to_string()
}
/// Creates a String of Permissions from a given [`Vec`] of [`PermissionFlags`].
/// # Example:
/// ```
/// use chorus::types::{PermissionFlags};
///
/// let mut vector: Vec<PermissionFlags> = Vec::new();
/// vector.push(PermissionFlags::MUTE_MEMBERS);
/// vector.push(PermissionFlags::DEAFEN_MEMBERS);
///
/// let permissions: String = PermissionFlags::from_vec(vector);
///
/// println!("The permissions string is {}.", permissions);
/// assert_eq!(permissions, "12582912".to_string());
/// ```
pub fn from_vec(flags: Vec<PermissionFlags>) -> String {
let mut permissions: PermissionFlags = Default::default();
for flag in flags.iter() {
permissions = permissions | flag.clone();
}
permissions.to_string()
}
} }