Skip to main content

Router

Trait Router 

Source
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§

Source

fn select( &self, need: &RoutingNeed, budget: &BudgetState, ) -> Vec<Arc<dyn Brain>>

Returns an ordered fallback chain of Brains. Primary brain first, fallbacks in order.

Source

fn on_error(&self, b: &dyn Brain, e: &BrainError) -> Retry

Source

fn find_brain_by_id(&self, model_id: &str) -> Option<Arc<dyn Brain>>

Look up a brain by its model ID across all registered providers. Used by the WebView model-override path when the user picks a model that isn’t in the natural routing chain.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§