use crate::config::NetworkChoice;
use crate::index::pad_info::PadInfo;
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
mod core;
mod key_management;
mod pad_management;
mod status;
mod public_keys;
mod import_export;
mod utils;
#[cfg(test)]
mod tests;
pub use utils::get_index_file_path;
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub enum IndexEntry {
PrivateKey(Vec<PadInfo>),
PublicUpload(PadInfo, Vec<PadInfo>),
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub struct MasterIndex {
index: BTreeMap<String, IndexEntry>,
free_pads: Vec<PadInfo>,
pending_verification_pads: Vec<PadInfo>,
network_choice: NetworkChoice,
}
#[derive(Debug, Default)]
pub struct StorageStats {
pub nb_keys: u64,
pub total_pads: u64,
pub occupied_pads: u64,
pub free_pads: u64,
pub pending_verification_pads: u64,
}