#[non_exhaustive]pub struct PrivateLink {
pub manifest: Hash,
pub capability: [u8; 32],
pub expires_at: u64,
}Expand description
A bearer capability link to a private manifest.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.manifest: HashImmutable manifest granted by this capability.
capability: [u8; 32]Secret read capability. It is intentionally included in the URI.
expires_at: u64Unix timestamp after which the capability is no longer accepted.
Implementations§
Source§impl PrivateLink
impl PrivateLink
Sourcepub fn generate(manifest: Hash, expires_at: u64) -> Result<Self>
pub fn generate(manifest: Hash, expires_at: u64) -> Result<Self>
Generate a private capability link with a cryptographically random bearer token.
§Errors
Returns an error if the expiration is invalid.
Sourcepub fn parse(value: &str) -> Result<Self>
pub fn parse(value: &str) -> Result<Self>
Parse a private capability URI.
§Errors
Returns an error if the URI, hash, capability, or expiration is malformed.
Sourcepub fn new(
manifest: Hash,
capability: [u8; 32],
expires_at: u64,
) -> Result<Self>
pub fn new( manifest: Hash, capability: [u8; 32], expires_at: u64, ) -> Result<Self>
Create a private capability link.
§Errors
Returns an error if the capability or expiration is invalid.
Sourcepub const fn is_expired_at(&self, now: u64) -> bool
pub const fn is_expired_at(&self, now: u64) -> bool
Return whether this link is expired at now.
Sourcepub fn revocation_key(&self) -> (Hash, Vec<u8>)
pub fn revocation_key(&self) -> (Hash, Vec<u8>)
Return a stable key used by revocation lists.
Trait Implementations§
Source§impl Clone for PrivateLink
impl Clone for PrivateLink
Source§impl Debug for PrivateLink
impl Debug for PrivateLink
Source§impl<'de> Deserialize<'de> for PrivateLink
impl<'de> Deserialize<'de> for PrivateLink
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 PrivateLink
impl Display for PrivateLink
impl Eq for PrivateLink
Source§impl FromStr for PrivateLink
impl FromStr for PrivateLink
Source§impl Hash for PrivateLink
impl Hash for PrivateLink
Source§impl PartialEq for PrivateLink
impl PartialEq for PrivateLink
Source§impl Serialize for PrivateLink
impl Serialize for PrivateLink
impl StructuralPartialEq for PrivateLink
Auto Trait Implementations§
impl Freeze for PrivateLink
impl RefUnwindSafe for PrivateLink
impl Send for PrivateLink
impl Sync for PrivateLink
impl Unpin for PrivateLink
impl UnsafeUnpin for PrivateLink
impl UnwindSafe for PrivateLink
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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