pub trait TypedModelProviderFactory: Send + Sync {
type Provider<'a>: ModelProvider + Send + Sync + ?Sized + 'a
where Self: 'a;
// Required method
fn create_typed(
&self,
provider_name: &str,
) -> Result<Arc<Self::Provider<'static>>>;
// Provided method
fn create_typed_with_base_url(
&self,
provider_name: &str,
base_url: Option<&str>,
) -> Result<Arc<Self::Provider<'static>>> { ... }
}Expand description
Typed variant of ModelProviderFactory using a generic associated model
provider type.
The lifetime parameter leaves room for factories that return providers
borrowing factory-owned shared state, while today’s blanket implementation
preserves the existing Arc<dyn ModelProvider> behavior.
Required Associated Types§
Required Methods§
Provided Methods§
fn create_typed_with_base_url( &self, provider_name: &str, base_url: Option<&str>, ) -> Result<Arc<Self::Provider<'static>>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".