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
impl FallbackControlPlane
pub fn new( primary: Box<dyn ControlPlane>, secondary: Box<dyn ControlPlane>, ) -> Self
Trait Implementations§
Source§impl ControlPlane for FallbackControlPlane
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,
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,
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
fn backend_name(&self) -> &str
Human-readable backend name for logging (e.g. “remote”, “local”).
Auto Trait Implementations§
impl Freeze for FallbackControlPlane
impl !RefUnwindSafe for FallbackControlPlane
impl Send for FallbackControlPlane
impl Sync for FallbackControlPlane
impl Unpin for FallbackControlPlane
impl UnsafeUnpin for FallbackControlPlane
impl !UnwindSafe for FallbackControlPlane
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