pub trait EmbeddingStore<Embedded: Clone + Ord> {
// Required methods
fn add(&mut self, embedding: Embedding) -> String;
fn add_with_id(&mut self, id: String, embedding: Embedding);
fn add_with_embedded(
&mut self,
embedding: Embedding,
embedded: Embedded
) -> String;
fn add_all(&mut self, embeddings: Vec<Embedding>) -> Vec<String>;
fn add_all_with_embedded(
&mut self,
embeddings: Vec<Embedding>,
embedded: Vec<Embedded>
) -> Vec<String>;
fn find_relevant(
&self,
reference_embedding: Embedding,
max_results: usize,
min_score: f32
) -> Vec<EmbeddingMatch<Embedded>>;
}