pub struct RequestCtx {
pub state: Arc<ServerState>,
pub token: String,
pub site_name: String,
}Expand description
Bundled extractor for State<Arc<ServerState>> + BearerToken +
SiteName. Use it in handler signatures instead of the three
individual extractors when all three are needed (the typical case).
The unauthenticated /auth/* handlers and the health endpoint
still use explicit extractors — they don’t need a Bearer token.
Fields§
§state: Arc<ServerState>Shared server state (backend dispatcher, per-site config, TLS material, optional Vault + k8s URLs).
token: StringBearer token extracted from the inbound Authorization header.
site_name: StringSite name extracted from the inbound X-Manta-Site header;
used to pick the right [sites.X] entry from state.
Implementations§
Source§impl RequestCtx
impl RequestCtx
Sourcepub fn infra(&self) -> InfraContext<'_>
pub fn infra(&self) -> InfraContext<'_>
Borrow the per-site infrastructure (backend, base URLs, root cert, optional Vault + k8s URLs). Infallible — the site was validated during extraction; a missing site would have failed the request before the handler body ran.
Trait Implementations§
Source§impl FromRequestParts<Arc<ServerState>> for RequestCtx
impl FromRequestParts<Arc<ServerState>> for RequestCtx
Source§type Rejection = (StatusCode, Json<ErrorResponse>)
type Rejection = (StatusCode, Json<ErrorResponse>)
Source§async fn from_request_parts(
parts: &mut Parts,
state: &Arc<ServerState>,
) -> Result<Self, Self::Rejection>
async fn from_request_parts( parts: &mut Parts, state: &Arc<ServerState>, ) -> Result<Self, Self::Rejection>
Auto Trait Implementations§
impl Freeze for RequestCtx
impl !RefUnwindSafe for RequestCtx
impl Send for RequestCtx
impl Sync for RequestCtx
impl Unpin for RequestCtx
impl !UnwindSafe for RequestCtx
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
§impl<S, T> FromRequest<S, ViaParts> for T
impl<S, T> FromRequest<S, ViaParts> for T
§type Rejection = <T as FromRequestParts<S>>::Rejection
type Rejection = <T as FromRequestParts<S>>::Rejection
§fn from_request(
req: Request<Body>,
state: &S,
) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
fn from_request( req: Request<Body>, state: &S, ) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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