Skip to main content

TypedModelProviderFactory

Trait TypedModelProviderFactory 

Source
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§

Source

type Provider<'a>: ModelProvider + Send + Sync + ?Sized + 'a where Self: 'a

Required Methods§

Source

fn create_typed( &self, provider_name: &str, ) -> Result<Arc<Self::Provider<'static>>>

Provided Methods§

Source

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".

Implementors§

Source§

impl<T> TypedModelProviderFactory for T
where T: ModelProviderFactory + ?Sized + 'static,

Source§

type Provider<'a> = dyn ModelProvider where Self: 'a