parallel_disk_usage/data_tree/
constructors.rsuse super::DataTree;
use crate::size;
impl<Name, Size: size::Size> DataTree<Name, Size> {
pub fn dir(name: Name, inode_size: Size, children: Vec<Self>) -> Self {
let size = inode_size + children.iter().map(DataTree::size).sum();
DataTree {
name,
size,
children,
}
}
pub fn file(name: Name, size: Size) -> Self {
DataTree {
name,
size,
children: Vec::with_capacity(0),
}
}
pub fn fixed_size_dir_constructor(inode_size: Size) -> impl Fn(Name, Vec<Self>) -> Self
where
Size: Copy,
{
move |name, children| DataTree::dir(name, inode_size, children)
}
}