semtree_embed/embedder.rs
1use async_trait::async_trait;
2
3use crate::{EmbedError, Embedding};
4
5#[async_trait]
6pub trait Embedder: Send + Sync {
7 async fn embed(&self, texts: &[&str]) -> Result<Vec<Embedding>, EmbedError>;
8
9 async fn embed_one(&self, text: &str) -> Result<Embedding, EmbedError> {
10 self.embed(&[text]).await.map(|mut v| v.remove(0))
11 }
12}