bee_storage/system/
mod.rs1mod health;
7mod version;
8
9use core::convert::Infallible;
10
11pub use self::{
12 health::{Error as StorageHealthError, StorageHealth},
13 version::StorageVersion,
14};
15
16pub const SYSTEM_VERSION_KEY: u8 = 0;
18pub const SYSTEM_HEALTH_KEY: u8 = 1;
20
21#[derive(Debug, thiserror::Error)]
23pub enum Error {
24 #[error("i/o error happened: {0}")]
26 Io(#[from] std::io::Error),
27 #[error("storage health error: {0}")]
29 Health(#[from] StorageHealthError),
30 #[error("unknown system key: {0}")]
32 UnknownSystemKey(u8),
33}
34
35impl From<Infallible> for Error {
36 fn from(err: Infallible) -> Self {
37 match err {}
38 }
39}
40
41#[derive(Debug, Copy, Clone, Eq, PartialEq, packable::Packable)]
43#[packable(unpack_error = Error)]
44#[packable(tag_type = u8, with_error = Error::UnknownSystemKey)]
45pub enum System {
46 #[packable(tag = SYSTEM_VERSION_KEY)]
48 Version(StorageVersion),
49 #[packable(tag = SYSTEM_HEALTH_KEY)]
51 Health(StorageHealth),
52}