pub struct Delegation {
pub delegator: String,
pub delegatee: String,
pub permissions: HashSet<Permission>,
pub expires_at: Option<DateTime<Utc>>,
}Expand description
Permission delegation record.
Represents a delegator granting a subset of their permissions to a delegatee, optionally for a limited time window.
Fields§
§delegator: String§delegatee: String§permissions: HashSet<Permission>§expires_at: Option<DateTime<Utc>>Implementations§
Source§impl Delegation
impl Delegation
Sourcepub fn new(delegator: impl Into<String>, delegatee: impl Into<String>) -> Self
pub fn new(delegator: impl Into<String>, delegatee: impl Into<String>) -> Self
Create a new delegation with required fields.
Sourcepub fn with_permissions<I>(self, permissions: I) -> Selfwhere
I: IntoIterator<Item = Permission>,
pub fn with_permissions<I>(self, permissions: I) -> Selfwhere
I: IntoIterator<Item = Permission>,
Add permissions to the delegation.
Sourcepub fn with_permission(self, permission: Permission) -> Self
pub fn with_permission(self, permission: Permission) -> Self
Add a single permission to the delegation.
Sourcepub fn with_expiry(self, expires_at: DateTime<Utc>) -> Self
pub fn with_expiry(self, expires_at: DateTime<Utc>) -> Self
Set the expiration time for the delegation.
Trait Implementations§
Source§impl Clone for Delegation
impl Clone for Delegation
Source§fn clone(&self) -> Delegation
fn clone(&self) -> Delegation
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 moreAuto Trait Implementations§
impl Freeze for Delegation
impl RefUnwindSafe for Delegation
impl Send for Delegation
impl Sync for Delegation
impl Unpin for Delegation
impl UnsafeUnpin for Delegation
impl UnwindSafe for Delegation
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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