pub struct InterceptorContext<I = Input, O = Output, E = Error> { /* private fields */ }
Expand description
A container for the data currently available to an interceptor.
Different context is available based on which phase the operation is currently in. For example,
context in the “before serialization” phase won’t have a request
yet since the input hasn’t been
serialized at that point. But once it gets into the “before transmit” phase, the request
will be set.
Implementations§
Source§impl InterceptorContext
impl InterceptorContext
Sourcepub fn new(input: Input) -> InterceptorContext
pub fn new(input: Input) -> InterceptorContext
Creates a new interceptor context in the “before serialization” phase.
Source§impl<I, O, E> InterceptorContext<I, O, E>
impl<I, O, E> InterceptorContext<I, O, E>
Sourcepub fn input(&self) -> Option<&I>
pub fn input(&self) -> Option<&I>
Retrieve the input for the operation being invoked.
Note: This method is intended for internal use only.
Sourcepub fn input_mut(&mut self) -> Option<&mut I>
pub fn input_mut(&mut self) -> Option<&mut I>
Retrieve the input for the operation being invoked.
Note: This method is intended for internal use only.
Sourcepub fn take_input(&mut self) -> Option<I>
pub fn take_input(&mut self) -> Option<I>
Takes ownership of the input.
Note: This method is intended for internal use only.
Sourcepub fn set_request(&mut self, request: Request)
pub fn set_request(&mut self, request: Request)
Set the request for the operation being invoked.
Note: This method is intended for internal use only.
Sourcepub fn request(&self) -> Option<&Request>
pub fn request(&self) -> Option<&Request>
Retrieve the transmittable request for the operation being invoked. This will only be available once request marshalling has completed.
Note: This method is intended for internal use only.
Sourcepub fn request_mut(&mut self) -> Option<&mut Request>
pub fn request_mut(&mut self) -> Option<&mut Request>
Retrieve the transmittable request for the operation being invoked. This will only be available once request marshalling has completed.
Note: This method is intended for internal use only.
Sourcepub fn take_request(&mut self) -> Option<Request>
pub fn take_request(&mut self) -> Option<Request>
Takes ownership of the request.
Note: This method is intended for internal use only.
Sourcepub fn set_response(&mut self, response: Response)
pub fn set_response(&mut self, response: Response)
Set the response for the operation being invoked.
Note: This method is intended for internal use only.
Sourcepub fn response(&self) -> Option<&Response>
pub fn response(&self) -> Option<&Response>
Returns the response.
Note: This method is intended for internal use only.
Sourcepub fn response_mut(&mut self) -> Option<&mut Response>
pub fn response_mut(&mut self) -> Option<&mut Response>
Returns a mutable reference to the response.
Note: This method is intended for internal use only.
Sourcepub fn set_output_or_error(&mut self, output: Result<O, OrchestratorError<E>>)
pub fn set_output_or_error(&mut self, output: Result<O, OrchestratorError<E>>)
Set the output or error for the operation being invoked.
Note: This method is intended for internal use only.
Sourcepub fn output_or_error(&self) -> Option<Result<&O, &OrchestratorError<E>>>
pub fn output_or_error(&self) -> Option<Result<&O, &OrchestratorError<E>>>
Returns the deserialized output or error.
Note: This method is intended for internal use only.
Sourcepub fn output_or_error_mut(
&mut self,
) -> Option<&mut Result<O, OrchestratorError<E>>>
pub fn output_or_error_mut( &mut self, ) -> Option<&mut Result<O, OrchestratorError<E>>>
Returns the mutable reference to the deserialized output or error.
Note: This method is intended for internal use only.
Sourcepub fn take_output_or_error(
&mut self,
) -> Option<Result<O, OrchestratorError<E>>>
pub fn take_output_or_error( &mut self, ) -> Option<Result<O, OrchestratorError<E>>>
Grants ownership of the deserialized output/error.
Note: This method is intended for internal use only.
Sourcepub fn is_failed(&self) -> bool
pub fn is_failed(&self) -> bool
Return true
if this context’s output_or_error
is an error. Otherwise, return false
.
Note: This method is intended for internal use only.
Sourcepub fn enter_serialization_phase(&mut self)
pub fn enter_serialization_phase(&mut self)
Advance to the Serialization phase.
Note: This method is intended for internal use only.
Sourcepub fn enter_before_transmit_phase(&mut self)
pub fn enter_before_transmit_phase(&mut self)
Advance to the BeforeTransmit phase.
Note: This method is intended for internal use only.
Sourcepub fn enter_transmit_phase(&mut self)
pub fn enter_transmit_phase(&mut self)
Advance to the Transmit phase.
Note: This method is intended for internal use only.
Sourcepub fn enter_before_deserialization_phase(&mut self)
pub fn enter_before_deserialization_phase(&mut self)
Advance to the BeforeDeserialization phase.
Note: This method is intended for internal use only.
Sourcepub fn enter_deserialization_phase(&mut self)
pub fn enter_deserialization_phase(&mut self)
Advance to the Deserialization phase.
Note: This method is intended for internal use only.
Sourcepub fn enter_after_deserialization_phase(&mut self)
pub fn enter_after_deserialization_phase(&mut self)
Advance to the AfterDeserialization phase.
Note: This method is intended for internal use only.
Sourcepub fn save_checkpoint(&mut self)
pub fn save_checkpoint(&mut self)
Set the request checkpoint. This should only be called once, right before entering the retry loop.
Note: This method is intended for internal use only.
Sourcepub fn rewind(&mut self, _cfg: &mut ConfigBag) -> RewindResult
pub fn rewind(&mut self, _cfg: &mut ConfigBag) -> RewindResult
Returns false if rewinding isn’t possible
Note: This method is intended for internal use only.
Source§impl<I, O, E> InterceptorContext<I, O, E>where
E: Debug,
impl<I, O, E> InterceptorContext<I, O, E>where
E: Debug,
Sourcepub fn into_parts(
self,
) -> (Option<I>, Option<Result<O, OrchestratorError<E>>>, Option<Request>, Option<Response>)
pub fn into_parts( self, ) -> (Option<I>, Option<Result<O, OrchestratorError<E>>>, Option<Request>, Option<Response>)
Decomposes the context into its constituent parts.
Note: This method is intended for internal use only.
Sourcepub fn finalize(self) -> Result<O, SdkError<E, Response>>
pub fn finalize(self) -> Result<O, SdkError<E, Response>>
Convert this context into the final operation result that is returned in client’s the public API.
Note: This method is intended for internal use only.
Sourcepub fn finalize_result(
&mut self,
result: Result<O, OrchestratorError<E>>,
) -> Result<O, SdkError<E, Response>>
pub fn finalize_result( &mut self, result: Result<O, OrchestratorError<E>>, ) -> Result<O, SdkError<E, Response>>
Convert the given output/error into a final operation result that is returned in the client’s public API.
Note: This method is intended for internal use only.
Sourcepub fn fail(&mut self, error: OrchestratorError<E>)
pub fn fail(&mut self, error: OrchestratorError<E>)
Mark this context as failed due to errors during the operation. Any errors already contained by the context will be replaced by the given error.
Note: This method is intended for internal use only.
Trait Implementations§
Source§impl<I, O, E> Debug for InterceptorContext<I, O, E>
impl<I, O, E> Debug for InterceptorContext<I, O, E>
Source§impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for AfterDeserializationInterceptorContextRef<'a, I, O, E>
impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for AfterDeserializationInterceptorContextRef<'a, I, O, E>
Source§fn from(
inner: &'a InterceptorContext<I, O, E>,
) -> AfterDeserializationInterceptorContextRef<'a, I, O, E>
fn from( inner: &'a InterceptorContext<I, O, E>, ) -> AfterDeserializationInterceptorContextRef<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for BeforeDeserializationInterceptorContextRef<'a, I, O, E>
impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for BeforeDeserializationInterceptorContextRef<'a, I, O, E>
Source§fn from(
inner: &'a InterceptorContext<I, O, E>,
) -> BeforeDeserializationInterceptorContextRef<'a, I, O, E>
fn from( inner: &'a InterceptorContext<I, O, E>, ) -> BeforeDeserializationInterceptorContextRef<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for BeforeSerializationInterceptorContextRef<'a, I, O, E>
impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for BeforeSerializationInterceptorContextRef<'a, I, O, E>
Source§fn from(
inner: &'a InterceptorContext<I, O, E>,
) -> BeforeSerializationInterceptorContextRef<'a, I, O, E>
fn from( inner: &'a InterceptorContext<I, O, E>, ) -> BeforeSerializationInterceptorContextRef<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for BeforeTransmitInterceptorContextRef<'a, I, O, E>
impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for BeforeTransmitInterceptorContextRef<'a, I, O, E>
Source§fn from(
inner: &'a InterceptorContext<I, O, E>,
) -> BeforeTransmitInterceptorContextRef<'a, I, O, E>
fn from( inner: &'a InterceptorContext<I, O, E>, ) -> BeforeTransmitInterceptorContextRef<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for FinalizerInterceptorContextRef<'a, I, O, E>
impl<'a, I, O, E> From<&'a InterceptorContext<I, O, E>> for FinalizerInterceptorContextRef<'a, I, O, E>
Source§fn from(
inner: &'a InterceptorContext<I, O, E>,
) -> FinalizerInterceptorContextRef<'a, I, O, E>
fn from( inner: &'a InterceptorContext<I, O, E>, ) -> FinalizerInterceptorContextRef<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for BeforeDeserializationInterceptorContextMut<'a, I, O, E>
impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for BeforeDeserializationInterceptorContextMut<'a, I, O, E>
Source§fn from(
inner: &'a mut InterceptorContext<I, O, E>,
) -> BeforeDeserializationInterceptorContextMut<'a, I, O, E>
fn from( inner: &'a mut InterceptorContext<I, O, E>, ) -> BeforeDeserializationInterceptorContextMut<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for BeforeSerializationInterceptorContextMut<'a, I, O, E>
impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for BeforeSerializationInterceptorContextMut<'a, I, O, E>
Source§fn from(
inner: &'a mut InterceptorContext<I, O, E>,
) -> BeforeSerializationInterceptorContextMut<'a, I, O, E>
fn from( inner: &'a mut InterceptorContext<I, O, E>, ) -> BeforeSerializationInterceptorContextMut<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for BeforeTransmitInterceptorContextMut<'a, I, O, E>
impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for BeforeTransmitInterceptorContextMut<'a, I, O, E>
Source§fn from(
inner: &'a mut InterceptorContext<I, O, E>,
) -> BeforeTransmitInterceptorContextMut<'a, I, O, E>
fn from( inner: &'a mut InterceptorContext<I, O, E>, ) -> BeforeTransmitInterceptorContextMut<'a, I, O, E>
Source§impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for FinalizerInterceptorContextMut<'a, I, O, E>
impl<'a, I, O, E> From<&'a mut InterceptorContext<I, O, E>> for FinalizerInterceptorContextMut<'a, I, O, E>
Source§fn from(
inner: &'a mut InterceptorContext<I, O, E>,
) -> FinalizerInterceptorContextMut<'a, I, O, E>
fn from( inner: &'a mut InterceptorContext<I, O, E>, ) -> FinalizerInterceptorContextMut<'a, I, O, E>
Auto Trait Implementations§
impl<I = Input, O = Output, E = Error> !Freeze for InterceptorContext<I, O, E>
impl<I = Input, O = Output, E = Error> !RefUnwindSafe for InterceptorContext<I, O, E>
impl<I, O, E> Send for InterceptorContext<I, O, E>
impl<I, O, E> Sync for InterceptorContext<I, O, E>
impl<I, O, E> Unpin for InterceptorContext<I, O, E>
impl<I = Input, O = Output, E = Error> !UnwindSafe for InterceptorContext<I, O, E>
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> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.