use crate::cli::PathBuf; use crate::util::read_lines; pub fn subcmd_day001(file: &Option, top: &i32, total: &bool) { if let Ok(lines) = read_lines(file.as_ref().unwrap().as_path()) { // Consumes the iterator, returns an (Optional) String let mut nutri: i32 = 0; let mut hist: Vec = Vec::new(); for line in lines { if let Ok(num) = line { if num.is_empty() { hist.push(nutri); nutri = 0; } else { nutri += num.parse::().unwrap(); } } } hist.sort(); let hist_len = hist.len(); let mut top_total: i32 = 0; for x in 0..*top{ let index: usize = hist_len - 1 - usize::try_from(x).unwrap(); top_total += hist[index]; println!("{:?}", hist[index]); } if *total{ println!("Total:"); println!("{:?}", top_total); } } }