pub trait EmbeddingModelDyn: Sync + Send {
// Required methods
fn max_documents(&self) -> usize;
fn ndims(&self) -> usize;
fn embed_text<'a>(
&'a self,
text: &'a str,
) -> Pin<Box<dyn Future<Output = Result<Embedding, EmbeddingError>> + Send + 'a>>;
fn embed_texts(
&self,
texts: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Embedding>, EmbeddingError>> + Send + '_>>;
}