pub struct Permission {
pub action: String,
pub resource: String,
pub instance: Option<String>,
}Expand description
Represents a permission with action and resource.
Fields§
§action: StringThe action being performed (e.g., “read”, “write”, “delete”)
resource: StringThe resource being accessed (e.g., “documents”, “users”, “settings”)
instance: Option<String>Optional resource instance (e.g., specific document ID)
Implementations§
Source§impl Permission
impl Permission
Sourcepub fn new(action: impl Into<String>, resource: impl Into<String>) -> Self
pub fn new(action: impl Into<String>, resource: impl Into<String>) -> Self
Create a new permission.
Sourcepub fn from_action(action: impl Into<String>) -> Self
pub fn from_action(action: impl Into<String>) -> Self
Create a new permission with just an action (resource defaults to “*”).
Source§impl Permission
impl Permission
Sourcepub fn matches(&self, other: &Permission) -> bool
pub fn matches(&self, other: &Permission) -> bool
Check if this permission matches another permission (considering wildcards).
Sourcepub fn implies(&self, other: &Permission) -> bool
pub fn implies(&self, other: &Permission) -> bool
Check if this permission implies another permission.
Trait Implementations§
Source§impl Clone for Permission
impl Clone for Permission
Source§fn clone(&self) -> Permission
fn clone(&self) -> Permission
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Permission
impl Debug for Permission
Source§impl<'de> Deserialize<'de> for Permission
impl<'de> Deserialize<'de> for Permission
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 Display for Permission
impl Display for Permission
Source§impl Hash for Permission
impl Hash for Permission
Source§impl PartialEq for Permission
impl PartialEq for Permission
Source§impl Serialize for Permission
impl Serialize for Permission
impl Eq for Permission
impl StructuralPartialEq for Permission
Auto Trait Implementations§
impl Freeze for Permission
impl RefUnwindSafe for Permission
impl Send for Permission
impl Sync for Permission
impl Unpin for Permission
impl UnwindSafe for Permission
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.