pub trait Embedder: Send + Sync {
// Required methods
fn embed(&self, input: &str) -> Result<Vec<f32>, VecGraphError>;
fn dimensions(&self) -> usize;
// Provided methods
fn embed_batch(
&self,
inputs: &[&str],
) -> Result<Vec<Vec<f32>>, VecGraphError> { ... }
fn arithmetic(
&self,
base: &[f32],
add: &[&[f32]],
sub: &[&[f32]],
) -> Result<Vec<f32>, VecGraphError> { ... }
}