use indexmap::IndexMap;
use serde::{Deserialize, Serialize};
use snops_checkpoint::RetentionPolicy;
use crate::{
binaries::BinaryEntry,
prelude::StorageId,
state::{InternedId, LatestBlockInfo, NetworkId},
};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct CheckpointMeta {
pub height: u32,
pub timestamp: i64,
pub filename: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct EnvInfo {
pub network: NetworkId,
pub storage: StorageInfo,
pub block: Option<LatestBlockInfo>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct StorageInfo {
pub id: StorageId,
pub retention_policy: Option<RetentionPolicy>,
pub checkpoints: Vec<CheckpointMeta>,
pub persist: bool,
pub version: u16,
pub native_genesis: bool,
pub binaries: IndexMap<InternedId, BinaryEntry>,
}