tempest-kv 0.0.2

Key-Value storage layer for TempestDB
Documentation
use crate::{base::KeyKind, manifest::ManifestError};
use derive_more::{Display, Error, From};
use num_enum::TryFromPrimitiveError;

#[derive(Debug, Display, Error, From)]
pub enum StorageError {
    #[display("i/o error: {}", _0)]
    IoError(std::io::Error),

    #[display("failed to encode: {}", _0)]
    BincodeError(bincode::Error),

    //#[display("wal: {}", _0)]
    //Wal(WalError),
    #[display("manifest: {}", _0)]
    Manifest(ManifestError),

    //#[display("failed to read sst: {}", _0)]
    //SstRead(SstReadError),
    #[display("invalid key kind: {}", _0.number)]
    InvalidKeyKind(TryFromPrimitiveError<KeyKind>),

    #[display("wal header corrupted: expected filenum {} but got {}", expected, got)]
    WalCorruption { expected: u64, got: u64 },

    #[display("storage worker died")]
    WorkerDied,
}