Upstreams

Trait Upstreams 

Source
pub trait Upstreams:
    Send
    + Sync
    + 'static {
    type Error: StdError + Send + Sync + 'static;

    // Required method
    fn elect(&self) -> impl Future<Output = Result<&str, Self::Error>> + Send;
}
Expand description

Upstreams trait for selecting target servers.

Implement this trait to customize how target servers are selected for proxying requests. This can be used to implement load balancing, failover, or other server selection strategies.

Required Associated Types§

Source

type Error: StdError + Send + Sync + 'static

Error type returned when selecting a server fails.

Required Methods§

Source

fn elect(&self) -> impl Future<Output = Result<&str, Self::Error>> + Send

Elect a server to handle the current request.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Upstreams for &'static str

Source§

type Error = Infallible

Source§

async fn elect(&self) -> Result<&str, Self::Error>

Source§

impl Upstreams for String

Source§

type Error = Infallible

Source§

async fn elect(&self) -> Result<&str, Self::Error>

Source§

impl<T> Upstreams for Vec<T>
where T: AsRef<str> + Send + Sync + 'static,

Source§

type Error = Error

Source§

async fn elect(&self) -> Result<&str, Self::Error>

Source§

impl<const N: usize> Upstreams for [&'static str; N]

Source§

type Error = Error

Source§

async fn elect(&self) -> Result<&str, Self::Error>

Implementors§