pub struct ResilientClientBuilder { /* private fields */ }Expand description
Builder for ResilientClient.
Implementations§
Source§impl ResilientClientBuilder
impl ResilientClientBuilder
Sourcepub fn max_parallel(self, n: usize) -> ResilientClientBuilder
pub fn max_parallel(self, n: usize) -> ResilientClientBuilder
Cap concurrent in-flight requests for this client. Default 8.
Sourcepub fn retry(self, policy: RetryPolicy) -> ResilientClientBuilder
pub fn retry(self, policy: RetryPolicy) -> ResilientClientBuilder
Retry policy for ResilientClient::execute. Calls made through
execute_with carry their own CallPolicy.
Sourcepub fn circuit_breaker(
self,
threshold: usize,
cooldown: Duration,
) -> ResilientClientBuilder
pub fn circuit_breaker( self, threshold: usize, cooldown: Duration, ) -> ResilientClientBuilder
Open the breaker after threshold consecutive failures; stay open for
cooldown (fixed), then allow one half-open probe.
Sourcepub fn circuit_breaker_growing(
self,
threshold: usize,
base_cooldown: Duration,
max_cooldown: Duration,
) -> ResilientClientBuilder
pub fn circuit_breaker_growing( self, threshold: usize, base_cooldown: Duration, max_cooldown: Duration, ) -> ResilientClientBuilder
Like circuit_breaker, but each failed probe doubles the cooldown up
to max_cooldown; a success resets it to base_cooldown.
Sourcepub fn default_breaker(self) -> ResilientClientBuilder
pub fn default_breaker(self) -> ResilientClientBuilder
The spec’s default: 5 failures, 5 s doubling to 60 s.
Sourcepub fn bearer_auth(
self,
refresher: Arc<dyn Fn() -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send>> + Send + Sync>,
) -> ResilientClientBuilder
pub fn bearer_auth( self, refresher: Arc<dyn Fn() -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send>> + Send + Sync>, ) -> ResilientClientBuilder
Bearer auth, re-acquired lazily and on 401.
Sourcepub fn auth(
self,
refresher: Arc<dyn Fn() -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send>> + Send + Sync>,
header: impl Into<String>,
scheme: impl Into<String>,
) -> ResilientClientBuilder
pub fn auth( self, refresher: Arc<dyn Fn() -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send>> + Send + Sync>, header: impl Into<String>, scheme: impl Into<String>, ) -> ResilientClientBuilder
Auth with a custom header name and scheme prefix.
Sourcepub fn http_client(self, client: Client) -> ResilientClientBuilder
pub fn http_client(self, client: Client) -> ResilientClientBuilder
Send requests with client instead of a default one. The client keeps
its own settings; request_timeout does not
apply to it.
Sourcepub fn request_timeout(self, timeout: Duration) -> ResilientClientBuilder
pub fn request_timeout(self, timeout: Duration) -> ResilientClientBuilder
Give up on a single request after timeout (default 30 s). It covers
connecting, sending and reading the response, and a timed-out attempt
is a retryable transport failure.
Applies only to the default client this crate builds; a client passed
to http_client keeps its own timeout.
Sourcepub fn no_request_timeout(self) -> ResilientClientBuilder
pub fn no_request_timeout(self) -> ResilientClientBuilder
Never time a request out. Applies only to the default client, like
request_timeout.
Sourcepub fn rate_limit(self, per_second: f64) -> ResilientClientBuilder
pub fn rate_limit(self, per_second: f64) -> ResilientClientBuilder
At most per_second attempts per second, with a burst of
per_second.ceil().
Sourcepub fn rate_limit_with_burst(
self,
per_second: f64,
burst: usize,
) -> ResilientClientBuilder
pub fn rate_limit_with_burst( self, per_second: f64, burst: usize, ) -> ResilientClientBuilder
Like rate_limit with an explicit burst size.
Sourcepub fn observer(
self,
key: impl Into<Arc<str>>,
observer: Arc<dyn TransportObserver>,
) -> ResilientClientBuilder
pub fn observer( self, key: impl Into<Arc<str>>, observer: Arc<dyn TransportObserver>, ) -> ResilientClientBuilder
Report every attempt, retry and breaker transition under key. See
TransportObserver::on_event for what the callback may do.
Sourcepub fn build(self) -> ResilientClient
pub fn build(self) -> ResilientClient
Finish the client. No network or proxy work happens here: a default
HTTP client is built on the first request. If that build keeps
failing, every attempt fails with a retryable
ErrorKind::Transport, so an
essential() call keeps retrying.
Trait Implementations§
Source§impl Default for ResilientClientBuilder
impl Default for ResilientClientBuilder
Source§fn default() -> ResilientClientBuilder
fn default() -> ResilientClientBuilder
Auto Trait Implementations§
impl !RefUnwindSafe for ResilientClientBuilder
impl !UnwindSafe for ResilientClientBuilder
impl Freeze for ResilientClientBuilder
impl Send for ResilientClientBuilder
impl Sync for ResilientClientBuilder
impl Unpin for ResilientClientBuilder
impl UnsafeUnpin for ResilientClientBuilder
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> 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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more