pub struct WorkloadId(/* private fields */);Expand description
SPIFFE-ID-shaped workload identifier.
Wire format: spiffe://<trust-domain>/<path> where the trust domain is
the URI authority and the path is a slash-separated sequence of non-empty
segments. Validation follows the SPIFFE-ID spec:
- scheme must be exactly
spiffe - no userinfo, no port, no query, no fragment
- trust domain matches
[a-z0-9][a-z0-9.-]*, lowercase, max 255 chars - each path segment is non-empty and matches
[A-Za-z0-9._~-]+ - full URI length ≤ 2048 characters
Constructors:
WorkloadId::buildbuilds from the three platform components used byCliResolver(trust domain, service name, tenant slug).WorkloadId::parsevalidates an arbitrary string. Used when loading from external sources (JWT-SVIDsubclaim, mTLS SAN, etc.).
Implementations§
Source§impl WorkloadId
impl WorkloadId
Sourcepub fn build(
trust_domain: &TrustDomain,
service: &str,
tenant_slug: &str,
) -> Result<WorkloadId, IdentityError>
pub fn build( trust_domain: &TrustDomain, service: &str, tenant_slug: &str, ) -> Result<WorkloadId, IdentityError>
Build a SPIFFE-ID URI from the platform identity components.
Format: spiffe://<trust_domain>/<service>/<tenant_slug>.
Validates service and tenant_slug as SPIFFE path segments;
the trust domain is already validated by TrustDomain::new.
Sourcepub fn parse(raw: &str) -> Result<WorkloadId, IdentityError>
pub fn parse(raw: &str) -> Result<WorkloadId, IdentityError>
Validate and adopt an arbitrary SPIFFE-ID string. Rejects any URI that does not conform to the SPIFFE-ID spec.
Trait Implementations§
Source§impl Clone for WorkloadId
impl Clone for WorkloadId
Source§fn clone(&self) -> WorkloadId
fn clone(&self) -> WorkloadId
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 WorkloadId
impl Debug for WorkloadId
Source§impl<'de> Deserialize<'de> for WorkloadId
impl<'de> Deserialize<'de> for WorkloadId
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<WorkloadId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<WorkloadId, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for WorkloadId
impl Display for WorkloadId
Source§impl Hash for WorkloadId
impl Hash for WorkloadId
Source§impl PartialEq for WorkloadId
impl PartialEq for WorkloadId
Source§fn eq(&self, other: &WorkloadId) -> bool
fn eq(&self, other: &WorkloadId) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for WorkloadId
impl Serialize for WorkloadId
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Eq for WorkloadId
impl StructuralPartialEq for WorkloadId
Auto Trait Implementations§
impl Freeze for WorkloadId
impl RefUnwindSafe for WorkloadId
impl Send for WorkloadId
impl Sync for WorkloadId
impl Unpin for WorkloadId
impl UnsafeUnpin for WorkloadId
impl UnwindSafe for WorkloadId
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> 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<'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<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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.