use serde::{Deserialize, Serialize};
use crate::manifest::archive::Extent;
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Node {
path: String,
total_size: u64,
sparse_size: u64,
extents: Option<Vec<Extent>>,
}
impl Node {
pub fn new(path: String, total_size: u64, sparse_size: u64, sparsity: bool) -> Node {
Node {
path,
total_size,
sparse_size,
extents: if sparsity { Some(Vec::new()) } else { None },
}
}
pub fn path(&self) -> &str {
&self.path
}
pub fn total_size(&self) -> u64 {
self.total_size
}
pub fn sparse_size(&self) -> u64 {
self.sparse_size
}
pub fn is_sparse(&self) -> bool {
self.extents.is_some()
}
}
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct Listing {}