pub struct Dispatch {
pub idx: usize,
pub address: String,
pub port: u16,
pub health: Option<HealthDispatch>,
/* private fields */
}Expand description
One dispatch’s pick: the endpoint chosen, its address:port, the
passive-health report handle (DW-012), and the in-flight guard for the
same snapshot the pick came from. Dropping the Dispatch (after the
response headers resolve) releases the guard.
Fields§
§idx: usizeEndpoint index in the snapshot the pick ran against (informational).
address: StringPicked endpoint’s address.
port: u16Picked endpoint’s port.
health: Option<HealthDispatch>Passive health report handle for the picked endpoint, present only
when the upstream configures health. The send path reports the
outcome (transport error / status >= 500 = failure) when the
response headers resolve.
Implementations§
Source§impl Dispatch
impl Dispatch
Sourcepub fn release(self)
pub fn release(self)
Release the in-flight guard explicitly. Dropping the Dispatch
has the same effect; this exists for call sites that want the
release point named and to keep the guard field honest.
Sourcepub fn take_guard(&mut self) -> Option<InflightGuard>
pub fn take_guard(&mut self) -> Option<InflightGuard>
REL-06 (#217): take the in-flight guard out of the dispatch
WITHOUT decrementing the counter. Used when the caller will
attach the guard to the response body so the counter is held
until the body stream completes (body-completion in-flight
accounting). After this call, release() and Drop are no-ops
for the guard.
Auto Trait Implementations§
impl !Freeze for Dispatch
impl RefUnwindSafe for Dispatch
impl Send for Dispatch
impl Sync for Dispatch
impl Unpin for Dispatch
impl UnwindSafe for Dispatch
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§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