day 7: some slight optimisation

This commit is contained in:
Dylan "smellyfis" Thies
2022-12-18 08:42:05 -05:00
parent d9d5e378d0
commit b8cc88f0eb

View File

@@ -105,25 +105,14 @@ impl Sizer for FileSystemTypes {
} }
fn recurse_part1(collector: &mut Vec<usize>, cwd: &MyDir) -> usize { fn recurse_part1(collector: &mut Vec<usize>, cwd: &MyDir) -> usize {
let mut cwd_size: usize = cwd let cwd_size: usize = cwd
.objects .objects
.iter() .iter()
.filter_map(|x| match x { .map(|x| match x {
FileSystemTypes::MyFile(y) => Some(y.size()), FileSystemTypes::MyFile(y) => y.size(),
_ => None, FileSystemTypes::MyDir(dir) => recurse_part1(collector, &dir.borrow()),
}) })
.sum(); .sum();
cwd_size += cwd
.objects
.iter()
.filter_map(|x| match x {
FileSystemTypes::MyDir(y) => Some(y),
_ => None,
})
.fold(0_usize, |folder, x| {
let sub_size = recurse_part1(collector, &x.borrow());
folder + sub_size
});
collector.push(cwd_size); collector.push(cwd_size);
cwd_size cwd_size
} }