use mentedb_core::error::MenteResult;
pub trait EmbeddingProvider: Send + Sync {
fn embed(&self, text: &str) -> MenteResult<Vec<f32>>;
fn embed_batch(&self, texts: &[&str]) -> MenteResult<Vec<Vec<f32>>>;
fn dimensions(&self) -> usize;
fn model_name(&self) -> &str;
}
pub trait AsyncEmbeddingProvider: Send + Sync {
fn embed(&self, text: &str) -> impl std::future::Future<Output = MenteResult<Vec<f32>>> + Send;
fn embed_batch(
&self,
texts: &[&str],
) -> impl std::future::Future<Output = MenteResult<Vec<Vec<f32>>>> + Send;
fn dimensions(&self) -> usize;
fn model_name(&self) -> &str;
}