aurum_core/provider_platform/
factory.rs1use super::context::ProviderBuildContext;
4use super::descriptor::ProviderDescriptor;
5use crate::capabilities::ProviderCapabilities;
6use crate::error::Result;
7use crate::providers::TranscriptionProvider;
8use std::sync::Arc;
9
10#[cfg(feature = "tts")]
11use crate::tts::provider::SynthesisProvider;
12
13pub trait TranscriptionProviderFactory: Send + Sync {
15 fn descriptor(&self) -> &ProviderDescriptor;
16
17 fn capabilities(&self, model: &str) -> Result<ProviderCapabilities>;
19
20 fn build(&self, ctx: &ProviderBuildContext) -> Result<Arc<dyn TranscriptionProvider>>;
21}
22
23#[cfg(feature = "tts")]
25pub trait SynthesisProviderFactory: Send + Sync {
26 fn descriptor(&self) -> &ProviderDescriptor;
27
28 fn capabilities(&self, model: &str) -> Result<ProviderCapabilities>;
29
30 fn build(&self, ctx: &ProviderBuildContext) -> Result<Arc<dyn SynthesisProvider>>;
31}