1use indexmap::IndexMap;
2use serde::{Deserialize, Serialize};
3use snops_checkpoint::RetentionPolicy;
4
5use crate::{
6 binaries::BinaryEntry,
7 prelude::StorageId,
8 state::{InternedId, LatestBlockInfo, NetworkId},
9};
10
11#[derive(Debug, Serialize, Deserialize, Clone)]
13pub struct CheckpointMeta {
14 pub height: u32,
15 pub timestamp: i64,
16 pub filename: String,
17}
18
19#[derive(Debug, Serialize, Deserialize, Clone)]
20pub struct EnvInfo {
21 pub network: NetworkId,
22 pub storage: StorageInfo,
23 pub block: Option<LatestBlockInfo>,
24}
25
26#[derive(Debug, Serialize, Deserialize, Clone)]
27pub struct StorageInfo {
28 pub id: StorageId,
30 pub retention_policy: Option<RetentionPolicy>,
32 pub checkpoints: Vec<CheckpointMeta>,
34 pub persist: bool,
36 pub version: u16,
38 pub native_genesis: bool,
40 pub binaries: IndexMap<InternedId, BinaryEntry>,
43}