Skip to main content

FallbackControlPlane

Struct FallbackControlPlane 

Source
pub struct FallbackControlPlane { /* private fields */ }
Expand description

Chains a primary and secondary control plane.

On lookup_client, the primary is tried first. If it returns NotFound or Unreachable, the secondary is consulted. Errors like Inactive or MalformedRecord from the primary are NOT retried those indicate the record was found but is invalid.

Implementations§

Source§

impl FallbackControlPlane

Source

pub fn new( primary: Box<dyn ControlPlane>, secondary: Box<dyn ControlPlane>, ) -> Self

Trait Implementations§

Source§

impl ControlPlane for FallbackControlPlane

Source§

fn lookup_client<'life0, 'life1, 'async_trait>( &'life0 self, api_key: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ClientRecord, ControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Look up a client by raw API key. Read more
Source§

fn health_check<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Quick connectivity check. Returns true if the backend is reachable.
Source§

fn backend_name(&self) -> &str

Human-readable backend name for logging (e.g. “remote”, “local”).

Auto Trait Implementations§

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.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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.