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§
Sourcefn 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,
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".