use serde::{Deserialize, Serialize};
pub const FORMAT_VERSION: u32 = 1;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Manifest {
pub format_version: u32,
pub generation: u64,
pub labels: Vec<String>,
pub next_node_id: u64,
pub node_count: u64,
pub edge_count: u64,
pub segments: Vec<SegmentMeta>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SegmentMeta {
pub name: String,
pub level: u32,
pub edges: u64,
pub bytes: u64,
}
impl Manifest {
pub fn empty() -> Self {
Self {
format_version: FORMAT_VERSION,
generation: 0,
labels: Vec::new(),
next_node_id: 0,
node_count: 0,
edge_count: 0,
segments: Vec::new(),
}
}
}