satoridb 0.1.2

Embedded vector database for approximate nearest neighbor search (experimental).
Documentation
use std::sync::atomic::{AtomicU64, Ordering};

static TOTAL_VECTORS_INSERTED: AtomicU64 = AtomicU64::new(0);

pub fn add(count: u64) {
    if count == 0 {
        return;
    }
    TOTAL_VECTORS_INSERTED.fetch_add(count, Ordering::Relaxed);
}

pub fn get() -> u64 {
    TOTAL_VECTORS_INSERTED.load(Ordering::Relaxed)
}

#[cfg(test)]
pub(crate) fn reset() {
    TOTAL_VECTORS_INSERTED.store(0, Ordering::Relaxed);
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn accumulates_counts() {
        reset();
        assert_eq!(get(), 0);
        add(5);
        add(7);
        assert_eq!(get(), 12);
    }

    #[test]
    fn ignores_zero_adds() {
        reset();
        add(0);
        assert_eq!(get(), 0);
    }
}