kvs 0.0.6

Embedded Key-Value Store
Documentation
#[cfg(feature = "serde")]
mod serde {
    use kvs::adapters::ram::MemoryAdapter;
    use kvs::*;
    use std::io::*;

    const STORE_SIZE: usize = 128;
    const BUCKETS: usize = 8;
    const SLOTS: usize = 1;
    type CrudStore = KVStore<MemoryAdapter<STORE_SIZE>, BUCKETS, SLOTS>;

    #[derive(serde::Serialize, serde::Deserialize, Debug, Eq, PartialEq)]
    enum SensorMode {
        LowPower,
        Normal,
    }

    #[derive(serde::Serialize, serde::Deserialize, Debug, Eq, PartialEq)]
    struct SensorConfig {
        offset: usize,
        prescaler: u8,
        mode: SensorMode,
    }

    pub fn dump() {
        let mut store =
            CrudStore::open(MemoryAdapter::default(), StoreConfig::new(0xf00d, 8), true).unwrap();
        store
            .insert_val::<SensorConfig, 32>(
                b"sensor/1",
                &SensorConfig {
                    offset: 100500,
                    prescaler: 255,
                    mode: SensorMode::LowPower,
                },
            )
            .unwrap();
        store
            .insert_val::<SensorConfig, 32>(
                b"sensor/2",
                &SensorConfig {
                    offset: 100,
                    prescaler: 128,
                    mode: SensorMode::Normal,
                },
            )
            .unwrap();
        store
            .insert_val::<SensorConfig, 32>(
                b"sensor/3",
                &SensorConfig {
                    offset: 500,
                    prescaler: 1,
                    mode: SensorMode::LowPower,
                },
            )
            .unwrap();
        stdout().write_all(&store.close().memory).ok();
    }
}

fn main() {
    #[cfg(feature = "serde")]
    {
        serde::dump();
    }
}