pub trait Router: Send + Sync {
// Required methods
fn select(
&self,
need: &RoutingNeed,
budget: &BudgetState,
) -> Vec<Arc<dyn Brain>>;
fn on_error(&self, b: &dyn Brain, e: &BrainError) -> Retry;
fn find_brain_by_id(&self, model_id: &str) -> Option<Arc<dyn Brain>>;
}Required Methods§
Sourcefn select(
&self,
need: &RoutingNeed,
budget: &BudgetState,
) -> Vec<Arc<dyn Brain>>
fn select( &self, need: &RoutingNeed, budget: &BudgetState, ) -> Vec<Arc<dyn Brain>>
Returns an ordered fallback chain of Brains. Primary brain first, fallbacks in order.
fn on_error(&self, b: &dyn Brain, e: &BrainError) -> Retry
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".