#[non_exhaustive]pub struct UnaryRequest {
pub ctx: RequestContext,
pub payload: Payload,
}Expand description
A unary RPC request as seen by an Interceptor.
Carries the dispatch RequestContext (headers, deadline,
extensions, Spec, negotiated protocol) and the
lazily-decoded body. Both fields are public so an interceptor can
rewrite headers, inject extensions, or replace the message and pass
the mutated request to Next::run.
ctx.spec is Some(..) for generated FooServiceServer<T>
dispatchers and for Router routes registered
through the generated register(); it is None only for manual
route_* registrations without a
Router::with_spec call.
#[non_exhaustive] so future fields can be added without a
breaking change. Construct with UnaryRequest::new; destructure
with a trailing ...
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.ctx: RequestContextThe dispatch context. Mutating ctx.headers or ctx.extensions
before next.run propagates to the handler.
payload: PayloadThe lazily-decoded request body. Call
set_message to replace it.
Implementations§
Source§impl UnaryRequest
impl UnaryRequest
Sourcepub fn new(ctx: RequestContext, body: Bytes, format: CodecFormat) -> Self
pub fn new(ctx: RequestContext, body: Bytes, format: CodecFormat) -> Self
Build a UnaryRequest from a dispatch context and wire-encoded
body. Used by the dispatch path and by test fixtures.