Skip to main content

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}