pub struct ChainHooks { /* private fields */ }Expand description
Several Hooks as one. Gates, starts and retries run in order; ends run in reverse,
so a hook that wraps the ones after it closes last, the way nested spans do.
Implementations§
Source§impl ChainHooks
impl ChainHooks
Trait Implementations§
Source§impl Hooks for ChainHooks
impl Hooks for ChainHooks
Source§fn on_operation_gate<'life0, 'life1, 'async_trait>(
&'life0 self,
op: &'life1 OperationInfo,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn on_operation_gate<'life0, 'life1, 'async_trait>(
&'life0 self,
op: &'life1 OperationInfo,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Asks every member in order and answers the first refusal. Go asks only the first
member that implements its separate gating interface; here gating is part of
Hooks itself, so the chain stops at whichever member refuses.
Source§fn on_operation_start(&self, op: &OperationInfo) -> OperationState
fn on_operation_start(&self, op: &OperationInfo) -> OperationState
Keeps each member’s own state, so ChainHooks::on_operation_end can hand every
one of them back what it made.
Source§fn on_operation_end(
&self,
op: &OperationInfo,
state: OperationState,
outcome: Result<(), &Error>,
duration: Duration,
)
fn on_operation_end( &self, op: &OperationInfo, state: OperationState, outcome: Result<(), &Error>, duration: Duration, )
Told how the operation ended and how long the whole of it took, requests, waits
and all.
Source§fn on_request_start(&self, info: &RequestInfo)
fn on_request_start(&self, info: &RequestInfo)
Told one HTTP request is about to go out.
Source§fn on_request_end(&self, info: &RequestInfo, result: &RequestResult<'_>)
fn on_request_end(&self, info: &RequestInfo, result: &RequestResult<'_>)
Told how one HTTP request turned out, once its body has been dealt with.
Source§fn on_retry(&self, info: &RequestInfo, next_attempt: u32, cause: &Error)
fn on_retry(&self, info: &RequestInfo, next_attempt: u32, cause: &Error)
Told about a resend before it is made: the attempt that failed in
info, the one
about to be made as next_attempt, and what prompted it.Source§fn is_noop(&self) -> bool
fn is_noop(&self) -> bool
Answers
true when this implementation does nothing, so ChainHooks can leave
it out.Auto Trait Implementations§
impl !RefUnwindSafe for ChainHooks
impl !UnwindSafe for ChainHooks
impl Freeze for ChainHooks
impl Send for ChainHooks
impl Sync for ChainHooks
impl Unpin for ChainHooks
impl UnsafeUnpin for ChainHooks
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
Mutably borrows from an owned value. Read more