vecdb 0.11.0

High-performance mutable persistent vectors built on rawdb
Documentation
#![cfg(feature = "pco")]

use rawdb::Database;
use tempfile::TempDir;
use vecdb::{
    BytesVec, ImportableVec, PcoVec, READ_CHUNK_SIZE, ReadableVec, Result, StoredVec, Version,
};

#[test]
fn compressed_cursor_chunks_are_page_aligned() -> Result<()> {
    let temp = TempDir::new()?;
    let db = Database::open(temp.path())?;

    let raw = BytesVec::<usize, u8>::import(&db, "raw", Version::ONE)?;
    assert_eq!(raw.cursor_chunk_size(), READ_CHUNK_SIZE);

    let pco_u8 = PcoVec::<usize, u8>::import(&db, "pco_u8", Version::ONE)?;
    assert_eq!(pco_u8.cursor_chunk_size(), 16 * 1024);
    assert_eq!(pco_u8.read_only_clone().cursor_chunk_size(), 16 * 1024);

    let pco_u64 = PcoVec::<usize, u64>::import(&db, "pco_u64", Version::ONE)?;
    assert_eq!(pco_u64.cursor_chunk_size(), READ_CHUNK_SIZE);
    assert_eq!(
        pco_u64.read_only_clone().cursor_chunk_size(),
        READ_CHUNK_SIZE
    );

    Ok(())
}