Struct aws_sdk_sso::config::interceptors::InterceptorContext

source ·
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

source

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>

source

pub fn input(&self) -> Option<&I>

Retrieve the input for the operation being invoked.

Note: This method is intended for internal use only.

source

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.

source

pub fn take_input(&mut self) -> Option<I>

Takes ownership of the input.

Note: This method is intended for internal use only.

source

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.

source

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.

source

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.

source

pub fn take_request(&mut self) -> Option<Request>

Takes ownership of the request.

Note: This method is intended for internal use only.

source

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.

source

pub fn response(&self) -> Option<&Response>

Returns the response.

Note: This method is intended for internal use only.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

pub fn enter_serialization_phase(&mut self)

Advance to the Serialization phase.

Note: This method is intended for internal use only.

source

pub fn enter_before_transmit_phase(&mut self)

Advance to the BeforeTransmit phase.

Note: This method is intended for internal use only.

source

pub fn enter_transmit_phase(&mut self)

Advance to the Transmit phase.

Note: This method is intended for internal use only.

source

pub fn enter_before_deserialization_phase(&mut self)

Advance to the BeforeDeserialization phase.

Note: This method is intended for internal use only.

source

pub fn enter_deserialization_phase(&mut self)

Advance to the Deserialization phase.

Note: This method is intended for internal use only.

source

pub fn enter_after_deserialization_phase(&mut self)

Advance to the AfterDeserialization phase.

Note: This method is intended for internal use only.

source

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.

source

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,

source

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.

source

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.

source

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.

source

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>
where I: Debug, O: Debug, E: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.
source§

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>

Converts to this type from the input type.

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>
where I: Send, O: Send, E: Send,

§

impl<I, O, E> Sync for InterceptorContext<I, O, E>
where I: Sync, O: Sync, E: Sync,

§

impl<I, O, E> Unpin for InterceptorContext<I, O, E>
where I: Unpin, O: Unpin, E: Unpin,

§

impl<I = Input, O = Output, E = Error> !UnwindSafe for InterceptorContext<I, O, E>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
§

impl<T> Paint for T
where T: ?Sized,

§

fn fg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

§Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Primary].

§Example
println!("{}", value.primary());
§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color::Fixed].

§Example
println!("{}", value.fixed(color));
§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color::Rgb].

§Example
println!("{}", value.rgb(r, g, b));
§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Black].

§Example
println!("{}", value.black());
§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Red].

§Example
println!("{}", value.red());
§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Green].

§Example
println!("{}", value.green());
§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Yellow].

§Example
println!("{}", value.yellow());
§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Blue].

§Example
println!("{}", value.blue());
§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Magenta].

§Example
println!("{}", value.magenta());
§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color::Cyan].

§Example
println!("{}", value.cyan());
§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color::White].

§Example
println!("{}", value.white());
§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightBlack].

§Example
println!("{}", value.bright_black());
§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightRed].

§Example
println!("{}", value.bright_red());
§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightGreen].

§Example
println!("{}", value.bright_green());
§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightYellow].

§Example
println!("{}", value.bright_yellow());
§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightBlue].

§Example
println!("{}", value.bright_blue());
§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightMagenta].

§Example
println!("{}", value.bright_magenta());
§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightCyan].

§Example
println!("{}", value.bright_cyan());
§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color::BrightWhite].

§Example
println!("{}", value.bright_white());
§

fn bg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

§Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Primary].

§Example
println!("{}", value.on_primary());
§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color::Fixed].

§Example
println!("{}", value.on_fixed(color));
§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color::Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Black].

§Example
println!("{}", value.on_black());
§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Red].

§Example
println!("{}", value.on_red());
§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Green].

§Example
println!("{}", value.on_green());
§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Yellow].

§Example
println!("{}", value.on_yellow());
§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Blue].

§Example
println!("{}", value.on_blue());
§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Magenta].

§Example
println!("{}", value.on_magenta());
§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color::Cyan].

§Example
println!("{}", value.on_cyan());
§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color::White].

§Example
println!("{}", value.on_white());
§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightBlack].

§Example
println!("{}", value.on_bright_black());
§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightRed].

§Example
println!("{}", value.on_bright_red());
§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightGreen].

§Example
println!("{}", value.on_bright_green());
§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightBlue].

§Example
println!("{}", value.on_bright_blue());
§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color::BrightWhite].

§Example
println!("{}", value.on_bright_white());
§

fn attr(&self, value: Attribute) -> Painted<&T>

Enables the styling [Attribute] value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

§Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Bold].

§Example
println!("{}", value.bold());
§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Dim].

§Example
println!("{}", value.dim());
§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Italic].

§Example
println!("{}", value.italic());
§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute::Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute::RapidBlink].

§Example
println!("{}", value.rapid_blink());
§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Invert].

§Example
println!("{}", value.invert());
§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Conceal].

§Example
println!("{}", value.conceal());
§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute::Strike].

§Example
println!("{}", value.strike());
§

fn quirk(&self, value: Quirk) -> Painted<&T>

Enables the yansi [Quirk] value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

§Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Mask].

§Example
println!("{}", value.mask());
§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Wrap].

§Example
println!("{}", value.wrap());
§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Linger].

§Example
println!("{}", value.linger());
§

fn clear(&self) -> Painted<&T>

👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear(). The clear() method will be removed in a future release.

Returns self with the quirk() set to [Quirk::Clear].

§Example
println!("{}", value.clear());
§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Resetting].

§Example
println!("{}", value.resetting());
§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::Bright].

§Example
println!("{}", value.bright());
§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk::OnBright].

§Example
println!("{}", value.on_bright());
§

fn whenever(&self, value: Condition) -> Painted<&T>

Conditionally enable styling based on whether the [Condition] value applies. Replaces any previous condition.

See the crate level docs for more details.

§Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new [Painted] with a default [Style]. Read more
§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more