pub struct ProviderRegistry { /* private fields */ }Expand description
Registry for managing tool providers with fallback chain
Implementations§
Source§impl ProviderRegistry
impl ProviderRegistry
Sourcepub fn with_cache_ttl(cache_ttl: Duration) -> Self
pub fn with_cache_ttl(cache_ttl: Duration) -> Self
Create a new provider registry with custom cache TTL
Sourcepub async fn on_provider_selected<F>(&self, callback: F)
pub async fn on_provider_selected<F>(&self, callback: F)
Set a callback for provider selection events
Sourcepub async fn register_mcp_provider(
&self,
tool_name: impl Into<String>,
provider: Arc<dyn Provider>,
)
pub async fn register_mcp_provider( &self, tool_name: impl Into<String>, provider: Arc<dyn Provider>, )
Register an MCP provider for a tool
Sourcepub async fn register_builtin_provider(
&self,
tool_name: impl Into<String>,
provider: Arc<dyn Provider>,
)
pub async fn register_builtin_provider( &self, tool_name: impl Into<String>, provider: Arc<dyn Provider>, )
Register a built-in provider for a tool
Sourcepub async fn get_provider(
&self,
tool_name: &str,
) -> Result<(Arc<dyn Provider>, ProviderSelection), ToolError>
pub async fn get_provider( &self, tool_name: &str, ) -> Result<(Arc<dyn Provider>, ProviderSelection), ToolError>
Get a provider for a tool using the priority chain
Returns the provider and selection information including trace ID for debugging.
Sourcepub async fn get_provider_simple(
&self,
tool_name: &str,
) -> Result<Arc<dyn Provider>, ToolError>
pub async fn get_provider_simple( &self, tool_name: &str, ) -> Result<Arc<dyn Provider>, ToolError>
Get a provider without selection information (simplified API)
Sourcepub async fn invalidate_cache(&self, tool_name: &str)
pub async fn invalidate_cache(&self, tool_name: &str)
Invalidate availability cache for a tool
Sourcepub async fn invalidate_all_caches(&self)
pub async fn invalidate_all_caches(&self)
Invalidate all availability caches
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ProviderRegistry
impl !RefUnwindSafe for ProviderRegistry
impl Send for ProviderRegistry
impl Sync for ProviderRegistry
impl Unpin for ProviderRegistry
impl !UnwindSafe for ProviderRegistry
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