diff --git a/crates/core/permissions/src/models/mod.rs b/crates/core/permissions/src/models/mod.rs index 330fe756..ba72b38b 100644 --- a/crates/core/permissions/src/models/mod.rs +++ b/crates/core/permissions/src/models/mod.rs @@ -8,10 +8,18 @@ pub use server::*; pub use user::*; /// Holds a permission value to manipulate. -#[derive(Clone, Debug)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] pub struct PermissionValue(u64); impl PermissionValue { + pub fn from_raw(value: u64) -> Self { + Self(value) + } + + pub fn into_raw(self) -> u64 { + self.0 + } + /// Apply a given override to this value pub fn apply(&mut self, v: Override) { self.allow(v.allow);