kivis 0.5.3

Type-safe database schema generation for Rust with support for custom storage backends, automatic indexing, and layered cache architectures
Documentation
use kivis::{Record, manifest};
use serde::{Deserialize, Serialize};

#[derive(Record, Default, Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
struct CacheTestRecord {
    name: String,
    data: Vec<u8>,
}

manifest![Manifest: CacheTestRecord];

#[test]
#[ignore] // Cache is deprecated at this stage.
fn test_layered_cache_architecture() -> anyhow::Result<()> {
    // let fallback_storage = MemoryStorage::new();

    // // Test data
    // let record = CacheTestRecord {
    //     name: "test_record".to_string(),
    //     data: vec![1, 2, 3, 4, 5],
    // };

    // let mut fallback_database = Database::<_, Manifest>::new(fallback_storage.clone())?;
    // let key = fallback_database.put(record.clone())?;
    // let fallback_storage = fallback_database.dissolve();

    // let mut database = Database::<_, Manifest>::new(MemoryStorage::new())?;
    // database.set_fallback(Box::new(fallback_storage));

    // // Verify record can be retrieved
    // let retrieved = database.get(&key)?;
    // assert_eq!(retrieved, Some(record.clone()));
    Ok(())
}