ruve-db 0.1.0

A hybrid vector and full-text search database with HNSW approximate nearest-neighbour indexing and BM25
Documentation
use serde::{Deserialize, Serialize};
use uuid::Uuid;

#[derive(Debug, Serialize, Deserialize)]
pub struct Record {
    pub id: String,
    pub vector: Vec<f32>,
    pub metadata: Option<String>,
}

impl Record {
    pub fn new(vector: Vec<f32>, metadata: Option<String>, id: Option<String>) -> Self {
        Record {
            id: match id {
                Some(id) => id,
                _ => Uuid::now_v7().to_string()
            },
            vector,
            metadata
        }
    }
}