]> aoc.elinar.fr Git - aoc_2023/commitdiff
Amélioration du squelette + application au day01
authoralex <null>
Fri, 1 Dec 2023 12:09:31 +0000 (13:09 +0100)
committeralex <null>
Sat, 2 Dec 2023 05:14:39 +0000 (06:14 +0100)
src/day00.rs
src/day01.rs
src/main.rs

index 36171eb7bd107d31cebc3dd8e38fba40e2f41993..d5e90c73874fe58c8dac67fd0df6df0cae7d8311 100644 (file)
@@ -1,15 +1,23 @@
+use std::io::Read;
 use std::error::Error;
+use std::fs::File;
+
+pub fn run(input_file: &str) -> Result<(), Box<dyn Error>> {
+    let mut f = File::open(input_file)?;
+    let mut input = String::new();
+    f.read_to_string(&mut input)?;
+
+    let res = run_part1(&input)?;
+    println!("{res}");
+
+    let res = run_part2(&input)?;
+    println!("{res}");
 
-pub fn run() -> Result<(), Box<dyn Error>> {
-    let input = "blabl";
-    run_part1(&input)?;
-    run_part2(&input)?;
     Ok(())
 }
 
 fn run_part1(input: &str) -> Result<String, Box<dyn Error>> {
     println!("Running day00 (template) - part 1");
-    println!("{input}");
     Ok(input.to_string())
 }
 
@@ -24,17 +32,15 @@ mod tests {
 
     #[test]
     fn day00_part1() {
-        let input = "\
-blabla";
+        let input = "";
         let res = run_part1(&input);
-        assert_eq!("blabla", res.unwrap());
+        assert_eq!("", res.unwrap());
     }
 
     #[test]
     fn day00_part2() {
-        let input = "\
-blabla";
+        let input = "";
         let res = run_part2(&input);
-        assert_eq!("blabla", res.unwrap());
+        assert_eq!("", res.unwrap());
     }
 }
index 5dcee5d8164db63a28a41fe7396e0598095a3442..761bdff22a9d57f863380d56586628cb7c4de0b6 100644 (file)
@@ -3,8 +3,8 @@ use std::error::Error;
 use std::fs::File;
 use std::collections::HashMap;
 
-pub fn run() -> Result<(), Box<dyn Error>> {
-    let mut f = File::open("input/day01.txt")?;
+pub fn run(input_file: &str) -> Result<(), Box<dyn Error>> {
+    let mut f = File::open(input_file)?;
     let mut input = String::new();
     f.read_to_string(&mut input)?;
 
index 80ffb11375e4873ade51038802aca45ce2bd1440..083626b7f5b5c26b4e60afde8bfc51aa0df455df 100644 (file)
@@ -7,21 +7,22 @@ pub mod day01;
 
 fn main() {
     let args: Vec<String> = env::args().collect();
-    if args.len() != 2 {
+    if args.len() != 3 {
         println!("Missing argument");
+        println!("usage: aoc_2023 <DAY> <INPUT_FILE>");
         process::exit(1);
     }
 
-    if let Err(e) = run(args[1].clone()) {
+    if let Err(e) = run(&args[1], &args[2]) {
         println!("Error: {e}");
         process::exit(1);
     }
 }
 
-fn run(day: String) -> Result<(), Box<dyn Error>> {
-    match day.as_ref() {
-        "day00" => day00::run()?,
-        "day01" => day01::run()?,
+fn run(day: &str, input_file: &str) -> Result<(), Box<dyn Error>> {
+    match day {
+        "day00" => day00::run(input_file)?,
+        "day01" => day01::run(input_file)?,
         _ => return Err(format!("unknown day \"{day}\"").into()),
     }
     Ok(())