weft_core/layers/router.rs
1use crate::config::ProviderConfig;
2use crate::types::ChatRequest;
3use anyhow::Result;
4use async_trait::async_trait;
5
6#[async_trait]
7pub trait RouterLayer: Send + Sync {
8 /// Choose which provider should handle this request.
9 /// Returns the provider name.
10 async fn route(&self, request: &ChatRequest, providers: &[ProviderConfig]) -> Result<String>;
11}