pub struct Policy {
pub role: String,
pub rules: Vec<Rule>,
pub description: String,
}Expand description
Policy defining permissions for a role
Fields§
§role: StringRole name
rules: Vec<Rule>Access control rules
description: StringPolicy description
Implementations§
Source§impl Policy
impl Policy
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Set description
Sourcepub fn allow(
self,
permission: Permission,
topic_pattern: impl Into<String>,
) -> Self
pub fn allow( self, permission: Permission, topic_pattern: impl Into<String>, ) -> Self
Add a permission rule
Sourcepub fn allow_publish(self, topic_pattern: impl Into<String>) -> Self
pub fn allow_publish(self, topic_pattern: impl Into<String>) -> Self
Add publish permission
Sourcepub fn allow_subscribe(self, topic_pattern: impl Into<String>) -> Self
pub fn allow_subscribe(self, topic_pattern: impl Into<String>) -> Self
Add subscribe permission
Sourcepub fn allows(&self, permission: Permission, topic: &str) -> bool
pub fn allows(&self, permission: Permission, topic: &str) -> bool
Check if this policy allows a specific action
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Policy
impl<'de> Deserialize<'de> for Policy
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
Auto Trait Implementations§
impl Freeze for Policy
impl RefUnwindSafe for Policy
impl Send for Policy
impl Sync for Policy
impl Unpin for Policy
impl UnwindSafe for Policy
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more