mutant_lib/index/master_index/
mod.rs1use crate::config::NetworkChoice;
2use crate::index::pad_info::PadInfo;
3use serde::{Deserialize, Serialize};
4use std::collections::BTreeMap;
5
6mod core;
8mod key_management;
9mod pad_management;
10mod status;
11mod public_keys;
12mod import_export;
13mod utils;
14
15#[cfg(test)]
16mod tests;
17
18pub use utils::get_index_file_path;
20
21#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
23pub enum IndexEntry {
24    PrivateKey(Vec<PadInfo>),
25    PublicUpload(PadInfo, Vec<PadInfo>),
26}
27
28#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
30pub struct MasterIndex {
31    index: BTreeMap<String, IndexEntry>,
33
34    free_pads: Vec<PadInfo>,
37
38    pending_verification_pads: Vec<PadInfo>,
41
42    network_choice: NetworkChoice,
43}
44
45#[derive(Debug, Default)]
46pub struct StorageStats {
47    pub nb_keys: u64,
48    pub total_pads: u64,
49    pub occupied_pads: u64,
50    pub free_pads: u64,
51    pub pending_verification_pads: u64,
52}