pub struct OutboundRequest {
pub bytes: Vec<u8>,
pub req_id: MsgId,
pub responder: Sender<OutboundEnvelope>,
pub span: Span,
pub ty: DmsgType,
pub target_peer_idx: Option<u32>,
}Expand description
Envelope sent into the server driver.
The driver writes bytes to the transport then awaits a
response, which it forwards as an OutboundEnvelope on
responder along with req_id.
span carries the originating client request’s
tracing::Span across the mpsc channel boundary so the
receiving task’s work nests under the originating client
span when distributed tracing is enabled. The default value
is tracing::Span::none, which has no overhead when no
subscriber is installed.
ty selects the dnode message-type header emitted on the
peer plane. Data-plane callers leave it at
DmsgType::Req; the gossip task uses
DmsgType::GossipSyn / DmsgType::GossipShutdown for
fire-and-forget control frames whose responder is never
signalled.
Fields§
§bytes: Vec<u8>Wire bytes already encoded by the dispatcher.
req_id: MsgIdRequest id for response tagging.
responder: Sender<OutboundEnvelope>Channel the driver pushes the parsed response onto.
span: SpanOriginating client request span; entered by the receiver to nest backend / peer work under the request tree.
ty: DmsgTypednode message-type header emitted by the peer driver.
Defaults to DmsgType::Req for data-plane requests.
target_peer_idx: Option<u32>Index of the target peer the dispatcher is forwarding the
request to. The local backend driver and dnode-peer driver
stamp this onto the OutboundEnvelope they produce so
the reply coalescer can identify the responding replica.
None is used for single-target paths where the responder
already implies the source.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for OutboundRequest
impl !RefUnwindSafe for OutboundRequest
impl Send for OutboundRequest
impl Sync for OutboundRequest
impl Unpin for OutboundRequest
impl UnsafeUnpin for OutboundRequest
impl !UnwindSafe for OutboundRequest
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
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.