block-db 0.2.0

Local, multi-threaded, durable byte DB.
Documentation
// Authors: Robert Lopez

use super::TestDB;
use crate::BlockKey;

impl TestDB {
    pub async fn read(
        &self,
        block_key: &BlockKey,
        expected_bytes: Option<&[u8]>,
    ) -> Result<(), String> {
        let bytes = self
            .block_db
            .read(block_key)
            .await
            .map_err(|err| format!("Failed to read {block_key:?} \n {err:?}"))?;

        if bytes.as_ref().map(|b| b.as_ref()) != expected_bytes {
            return Err(format!(
                "Invalid read from {block_key:?}. Read bytes of length {:?}, expected bytes of length {:?}",
                bytes.map(|b| b.len()), expected_bytes.map(|b| b.len())
            ));
        }

        Ok(())
    }
}