diff --git a/2022/day4/Cargo.lock b/2022/day4/Cargo.lock new file mode 100644 index 0000000..e92c02c --- /dev/null +++ b/2022/day4/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day4" +version = "0.1.0" diff --git a/2022/day4/Cargo.toml b/2022/day4/Cargo.toml new file mode 100644 index 0000000..8842130 --- /dev/null +++ b/2022/day4/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day4" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2022/aoc2022/data/day4-input.txt b/2022/day4/input.txt similarity index 100% rename from 2022/aoc2022/data/day4-input.txt rename to 2022/day4/input.txt diff --git a/2022/aoc2022/src/day4.rs b/2022/day4/src/main.rs similarity index 89% rename from 2022/aoc2022/src/day4.rs rename to 2022/day4/src/main.rs index 80eef70..0b4cb35 100644 --- a/2022/aoc2022/src/day4.rs +++ b/2022/day4/src/main.rs @@ -1,8 +1,7 @@ -use std::io::Result; +use std::env; +use std::fs; use std::ops::RangeInclusive; -use crate::file::line_reader_for_file; - #[derive(PartialEq, PartialOrd)] struct RangeString(String); @@ -55,10 +54,15 @@ impl Assignment { } } -pub fn main(filename: &str) -> Result<()> { - let assignment_counts: (u32, u32, u32) = line_reader_for_file(filename)? +pub fn main() { + let args: Vec = env::args().collect(); + + let filename = args.get(1).expect("Missing filename argument"); + + let file_contents = fs::read_to_string(&filename).expect("Unable to read file"); + + let assignment_counts: (u32, u32, u32) = file_contents.lines() .map(|line| -> Assignment { - let line = line.unwrap(); let mut elves = line.split(",").map(|s| RangeString::from(s)); let assignment = Assignment::from_left_and_right_specifier( elves.next().unwrap(), @@ -89,6 +93,4 @@ pub fn main(filename: &str) -> Result<()> { "Part 2: number of assignments with ranges at least partially overlapping: {}", assignment_counts.2 ); - - Ok(()) }