Skip to main content

ModelResolver

Trait ModelResolver 

Source
pub trait ModelResolver: Send + Sync {
    // Required method
    fn resolve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        model_ref: &'life1 ModelRef,
    ) -> Pin<Box<dyn Future<Output = ResolverResult<Arc<dyn Llm>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

Resolves a ModelRef into a live Arc<dyn Llm>.

Implementations may construct real provider clients or return pre-built instances. The trait is async because construction may involve network calls (e.g., verifying API keys or fetching model metadata).

§Example

use adk_managed::resolver::{ModelResolver, DefaultModelResolver};
use adk_managed::types::ModelRef;

let resolver = DefaultModelResolver::new();
let model_ref = ModelRef::Shorthand("gemini-2.5-flash".to_string());
let llm = resolver.resolve(&model_ref).await?;

Required Methods§

Source

fn resolve<'life0, 'life1, 'async_trait>( &'life0 self, model_ref: &'life1 ModelRef, ) -> Pin<Box<dyn Future<Output = ResolverResult<Arc<dyn Llm>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Resolve a model reference into a callable LLM instance.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§