pub struct FallbackLayer<Req, Res, E> { /* private fields */ }Expand description
A Tower layer that applies fallback behavior to a service.
See the module-level documentation for usage examples.
Implementations§
Source§impl<Req, Res, E> FallbackLayer<Req, Res, E>
impl<Req, Res, E> FallbackLayer<Req, Res, E>
Sourcepub fn builder() -> FallbackConfigBuilder<Req, Res, E>
pub fn builder() -> FallbackConfigBuilder<Req, Res, E>
Creates a new builder for configuring a fallback layer.
Sourcepub fn value_fn<F>(f: F) -> Self
pub fn value_fn<F>(f: F) -> Self
Creates a fallback layer that generates a value using a function.
Unlike value, this doesn’t require Res: Clone since
the function generates a fresh value for each fallback.
§Example
use tower_resilience_fallback::FallbackLayer;
let layer = FallbackLayer::<String, MyResponse, MyError>::value_fn(|| {
MyResponse { data: vec![0; 1024] }
});Source§impl<Req, Res, E> FallbackLayer<Req, Res, E>where
Res: Clone,
impl<Req, Res, E> FallbackLayer<Req, Res, E>where
Res: Clone,
Sourcepub fn value(value: Res) -> Self
pub fn value(value: Res) -> Self
Creates a fallback layer that returns a static value on failure.
Note: This requires Res: Clone. If your response type doesn’t implement
Clone, use value_fn instead.
§Example
use tower_resilience_fallback::FallbackLayer;
let layer = FallbackLayer::<String, String, MyError>::value("default".to_string());Sourcepub fn from_error<F>(f: F) -> Self
pub fn from_error<F>(f: F) -> Self
Creates a fallback layer that computes a response from the error.
§Example
use tower_resilience_fallback::FallbackLayer;
let layer = FallbackLayer::<String, String, MyError>::from_error(|e| {
format!("Error: {}", e.msg)
});Sourcepub fn from_request_error<F>(f: F) -> Self
pub fn from_request_error<F>(f: F) -> Self
Creates a fallback layer that computes a response from request and error.
§Example
use tower_resilience_fallback::FallbackLayer;
let layer = FallbackLayer::<String, String, MyError>::from_request_error(|req, _err| {
format!("Fallback for request: {}", req)
});Sourcepub fn service<S, Fut>(service: S) -> Self
pub fn service<S, Fut>(service: S) -> Self
Creates a fallback layer that routes to a backup service.
§Example
use tower_resilience_fallback::FallbackLayer;
let layer = FallbackLayer::<String, String, MyError>::service(|req: String| async move {
Ok::<_, MyError>(format!("backup: {}", req))
});Trait Implementations§
Source§impl<Req, Res, E> Clone for FallbackLayer<Req, Res, E>where
Res: Clone,
impl<Req, Res, E> Clone for FallbackLayer<Req, Res, E>where
Res: Clone,
Source§impl<S, Req, Res, E> Layer<S> for FallbackLayer<Req, Res, E>where
Res: Clone,
impl<S, Req, Res, E> Layer<S> for FallbackLayer<Req, Res, E>where
Res: Clone,
Auto Trait Implementations§
impl<Req, Res, E> Freeze for FallbackLayer<Req, Res, E>
impl<Req, Res, E> !RefUnwindSafe for FallbackLayer<Req, Res, E>
impl<Req, Res, E> Send for FallbackLayer<Req, Res, E>
impl<Req, Res, E> Sync for FallbackLayer<Req, Res, E>
impl<Req, Res, E> Unpin for FallbackLayer<Req, Res, E>
impl<Req, Res, E> UnsafeUnpin for FallbackLayer<Req, Res, E>
impl<Req, Res, E> !UnwindSafe for FallbackLayer<Req, Res, 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
Mutably borrows from an owned value. Read more