parallel_disk_usage/data_tree/
constructors.rs1use super::DataTree;
2use crate::size;
3
4impl<Name, Size: size::Size> DataTree<Name, Size> {
5 pub fn dir(name: Name, inode_size: Size, children: Vec<Self>) -> Self {
7 let size = inode_size + children.iter().map(DataTree::size).sum();
8 DataTree {
9 name,
10 size,
11 children,
12 }
13 }
14
15 pub fn file(name: Name, size: Size) -> Self {
17 DataTree {
18 name,
19 size,
20 children: Vec::with_capacity(0),
21 }
22 }
23
24 pub fn fixed_size_dir_constructor(inode_size: Size) -> impl Fn(Name, Vec<Self>) -> Self
26 where
27 Size: Copy,
28 {
29 move |name, children| DataTree::dir(name, inode_size, children)
30 }
31}