pub struct Authorized { /* private fields */ }Expand description
Witness that some id’s owning process was resolved and found readable under the caller’s
scope. Constructible only by AudienceGuard::authorize – a future call site that wants an
inner, unscoped session must hold one of these first, which is what keeps a fourth such UDTF
from silently reproducing the bypass this stage closes by calling CallerContext::internal()
directly. Not airtight: internal() stays public for genuinely non-user-reachable callers.
Implementations§
Source§impl Authorized
impl Authorized
pub fn id(&self) -> Uuid
Sourcepub fn internal_caller(&self) -> CallerContext
pub fn internal_caller(&self) -> CallerContext
The CallerContext an inner, post-authorization session may run under. Deliberately
ReadScope::All (not the caller’s own scope): every inner statement these three call sites run is
server-constructed and confined to self.id, so if self.id’s process is readable,
everything those statements can reach is readable too.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Authorized
impl RefUnwindSafe for Authorized
impl Send for Authorized
impl Sync for Authorized
impl Unpin for Authorized
impl UnsafeUnpin for Authorized
impl UnwindSafe for Authorized
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
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> ⓘ
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].