[INFO] cloning repository https://github.com/sephirothx/aoc23
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sephirothx/aoc23" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsephirothx%2Faoc23", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsephirothx%2Faoc23'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4feb833b5e22a4568aac7357f051547b1904e91e
[INFO] checking sephirothx/aoc23 against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsephirothx%2Faoc23" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sephirothx/aoc23
[INFO] finished tweaking git repo https://github.com/sephirothx/aoc23
[INFO] tweaked toml for git repo https://github.com/sephirothx/aoc23 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sephirothx/aoc23 on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sephirothx/aoc23 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f207c5ed764e1fa9f64e3f4987c31f3c630526ead39d13cc3bf7ff0c43f38fb5
[INFO] running `Command { std: "docker" "start" "-a" "f207c5ed764e1fa9f64e3f4987c31f3c630526ead39d13cc3bf7ff0c43f38fb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f207c5ed764e1fa9f64e3f4987c31f3c630526ead39d13cc3bf7ff0c43f38fb5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f207c5ed764e1fa9f64e3f4987c31f3c630526ead39d13cc3bf7ff0c43f38fb5", kill_on_drop: false }`
[INFO] [stdout] f207c5ed764e1fa9f64e3f4987c31f3c630526ead39d13cc3bf7ff0c43f38fb5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dunmustuse_in_always_ok" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 183aba0c1f1e9fc4f272963f54b85baec8d8ea8b22622eb5cb0aa40e0a690ff1
[INFO] running `Command { std: "docker" "start" "-a" "183aba0c1f1e9fc4f272963f54b85baec8d8ea8b22622eb5cb0aa40e0a690ff1", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking regex-automata v0.4.8
[INFO] [stderr]     Checking regex v1.11.0
[INFO] [stderr]     Checking aoc-2023-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]   --> src/main.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let input = Input::from_str(&read_from_file(20)).unwrap();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Game, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 18 | |         let (id, rounds) = s.split_once(": ").unwrap();
[INFO] [stdout] 19 | |         let id = id.split_once(" ").unwrap().1.parse().unwrap();
[INFO] [stdout] 20 | |         let rounds = rounds
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |         Ok(Self { id, rounds })
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Game, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         Ok(Self { id, rounds })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Input, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 45 | |         let games = s
[INFO] [stdout] 46 | |             .lines()
[INFO] [stdout] 47 | |             .map(|line| Game::from_str(line).unwrap())
[INFO] [stdout] 48 | |             .collect();
[INFO] [stdout] 49 | |         Ok(Self { games })
[INFO] [stdout] 50 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Game, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:47:25
[INFO] [stdout]    |
[INFO] [stdout] 47 |             .map(|line| Game::from_str(line).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Input, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         Ok(Self { games })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Game, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:94:30
[INFO] [stdout]    |
[INFO] [stdout] 94 |         assert_eq!(expected, Game::from_str(input).unwrap());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Input, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:99:29
[INFO] [stdout]    |
[INFO] [stdout] 99 |         assert_eq!(8, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Input, Infallible>
[INFO] [stdout]    --> src/days/day2_fancy.rs:104:32
[INFO] [stdout]     |
[INFO] [stdout] 104 |         assert_eq!(2286, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day3::Input, Infallible>
[INFO] [stdout]   --> src/days/day3.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 33 | |         let mut numbers = Vec::new();
[INFO] [stdout] 34 | |         let mut symbols = Vec::new();
[INFO] [stdout] 35 | |         let mut n: i32 = 0;
[INFO] [stdout] ...  |
[INFO] [stdout] 60 | |         Ok(Input { numbers, symbols })
[INFO] [stdout] 61 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day3::Input, Infallible>
[INFO] [stdout]   --> src/days/day3.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Ok(Input { numbers, symbols })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day3::Input, Infallible>
[INFO] [stdout]    --> src/days/day3.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |         assert_eq!(4361, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day3::Input, Infallible>
[INFO] [stdout]    --> src/days/day3.rs:114:34
[INFO] [stdout]     |
[INFO] [stdout] 114 |         assert_eq!(467835, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Card, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 18 | |         let (id, rest) = s.split_once(':').unwrap();
[INFO] [stdout] 19 | |         let id = id.split_whitespace().last().unwrap().parse::<i32>().unwrap();
[INFO] [stdout] 20 | |         let v = rest
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |         Ok(Card { id, score: v[0].intersection(&v[1]).count() as u32})
[INFO] [stdout] 28 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Card, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         Ok(Card { id, score: v[0].intersection(&v[1]).count() as u32})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day4::Input, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:34:53
[INFO] [stdout]    |
[INFO] [stdout] 34 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 35 | |         let cards = s.lines().map(|line| Card::from_str(line).unwrap()).collect();
[INFO] [stdout] 36 | |         Ok(Input { cards })
[INFO] [stdout] 37 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Card, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:35:42
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let cards = s.lines().map(|line| Card::from_str(line).unwrap()).collect();
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day4::Input, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         Ok(Input { cards })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day4::Input, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:70:30
[INFO] [stdout]    |
[INFO] [stdout] 70 |         assert_eq!(13, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day4::Input, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:75:30
[INFO] [stdout]    |
[INFO] [stdout] 75 |         assert_eq!(30, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Transform, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 29 | |         let rules = s
[INFO] [stdout] 30 | |             .lines()
[INFO] [stdout] 31 | |             .skip(1)
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |         Ok(Transform { rules })
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Transform, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         Ok(Transform { rules })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day5::Input, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 45 | |         let (seeds, transfoms) = s.split_once("\n\n").unwrap();
[INFO] [stdout] 46 | |         let seeds = seeds.split_whitespace().skip(1).map(|n| n.parse::<i64>().unwrap()).collect();
[INFO] [stdout] 47 | |         let transforms = transfoms.split("\n\n").map(|t| Transform::from_str(t).unwrap()).collect();
[INFO] [stdout] 48 | |         Ok(Input { seeds, transforms })
[INFO] [stdout] 49 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Transform, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let transforms = transfoms.split("\n\n").map(|t| Transform::from_str(t).unwrap()).collect();
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day5::Input, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         Ok(Input { seeds, transforms })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day5::Input, Infallible>
[INFO] [stdout]    --> src/days/day5.rs:181:21
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day5::Input, Infallible>
[INFO] [stdout]    --> src/days/day5.rs:190:30
[INFO] [stdout]     |
[INFO] [stdout] 190 |         assert_eq!(35, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day5::Input, Infallible>
[INFO] [stdout]    --> src/days/day5.rs:195:30
[INFO] [stdout]     |
[INFO] [stdout] 195 |         assert_eq!(46, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:19:53
[INFO] [stdout]    |
[INFO] [stdout] 19 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 20 | |         let (cards, value) = s.split_once(' ').unwrap();
[INFO] [stdout] 21 | |         let cards = cards.chars().collect();
[INFO] [stdout] 22 | |         let value = value.parse().unwrap();
[INFO] [stdout] 23 | |         Ok(Hand { cards, value })
[INFO] [stdout] 24 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok(Hand { cards, value })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day7::Input, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 31 | |         let hands = s.lines().map(|line| line.parse().unwrap()).collect();
[INFO] [stdout] 32 | |         Ok(Input { hands })
[INFO] [stdout] 33 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:31:42
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let hands = s.lines().map(|line| line.parse().unwrap()).collect();
[INFO] [stdout]    |                                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day7::Input, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Ok(Input { hands })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day7::Input, Infallible>
[INFO] [stdout]    --> src/days/day7.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |         assert_eq!(6440, part1(INPUT.parse().unwrap()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day7::Input, Infallible>
[INFO] [stdout]    --> src/days/day7.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |         assert_eq!(5905, part2(INPUT.parse().unwrap()));
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day8::Input, Infallible>
[INFO] [stdout]   --> src/days/day8.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 15 | |         let re = Regex::new(r"([A-Z]{3}) = \(([A-Z]{3}), ([A-Z]{3})\)").unwrap();
[INFO] [stdout] 16 | |         let mut lines = s.lines();
[INFO] [stdout] 17 | |         let directions = lines.next().unwrap().to_owned();
[INFO] [stdout] ...  |
[INFO] [stdout] 26 | |         })
[INFO] [stdout] 27 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day8::Input, Infallible>
[INFO] [stdout]   --> src/days/day8.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | /         Ok(Input {
[INFO] [stdout] 24 | |             directions,
[INFO] [stdout] 25 | |             network,
[INFO] [stdout] 26 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day8::Input, Infallible>
[INFO] [stdout]    --> src/days/day8.rs:103:30
[INFO] [stdout]     |
[INFO] [stdout] 103 |         assert_eq!(expected, Input::from_str(INPUT1).unwrap());
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day8::Input, Infallible>
[INFO] [stdout]    --> src/days/day8.rs:108:29
[INFO] [stdout]     |
[INFO] [stdout] 108 |         assert_eq!(6, part1(Input::from_str(INPUT1).unwrap()));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day8::Input, Infallible>
[INFO] [stdout]    --> src/days/day8.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |         assert_eq!(6, part2(Input::from_str(INPUT2).unwrap()));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day9::Input, Infallible>
[INFO] [stdout]   --> src/days/day9.rs:11:53
[INFO] [stdout]    |
[INFO] [stdout] 11 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 12 | |         let mut stories = Vec::new();
[INFO] [stdout] 13 | |         for line in s.lines() {
[INFO] [stdout] 14 | |             let v = line
[INFO] [stdout] ...  |
[INFO] [stdout] 20 | |         Ok(Input { stories })
[INFO] [stdout] 21 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day9::Input, Infallible>
[INFO] [stdout]   --> src/days/day9.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         Ok(Input { stories })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day9::Input, Infallible>
[INFO] [stdout]   --> src/days/day9.rs:70:30
[INFO] [stdout]    |
[INFO] [stdout] 70 |         assert_eq!(expected, Input::from_str(INPUT).unwrap());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day9::Input, Infallible>
[INFO] [stdout]   --> src/days/day9.rs:88:31
[INFO] [stdout]    |
[INFO] [stdout] 88 |         assert_eq!(114, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day9::Input, Infallible>
[INFO] [stdout]   --> src/days/day9.rs:92:29
[INFO] [stdout]    |
[INFO] [stdout] 92 |         assert_eq!(2, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day10::Input, Infallible>
[INFO] [stdout]   --> src/days/day10.rs:39:57
[INFO] [stdout]    |
[INFO] [stdout] 39 |       fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _________________________________________________________^
[INFO] [stdout] 40 | |         let mut map = Vec::new();
[INFO] [stdout] 41 | |         let mut start = (0, 0);
[INFO] [stdout] 42 | |         for (index, line) in input.lines().enumerate() {
[INFO] [stdout] ...  |
[INFO] [stdout] 48 | |         Ok(Input { map, start })
[INFO] [stdout] 49 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day10::Input, Infallible>
[INFO] [stdout]   --> src/days/day10.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         Ok(Input { map, start })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day10::Input, Infallible>
[INFO] [stdout]    --> src/days/day10.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 |         assert_eq!(8, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day10::Input, Infallible>
[INFO] [stdout]    --> src/days/day10.rs:150:30
[INFO] [stdout]     |
[INFO] [stdout] 150 |         assert_eq!(10, part2(Input::from_str(INPUT2).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day10::Input, Infallible>
[INFO] [stdout]    --> src/days/day10.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day11::Input, Infallible>
[INFO] [stdout]   --> src/days/day11.rs:31:53
[INFO] [stdout]    |
[INFO] [stdout] 31 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 32 | |         let mut galaxies = Vec::new();
[INFO] [stdout] 33 | |         let size = s.lines().count();
[INFO] [stdout] 34 | |         let mut empty = [Vec::new(), Vec::new()];
[INFO] [stdout] ...  |
[INFO] [stdout] 50 | |         Ok(Input { galaxies, empty })
[INFO] [stdout] 51 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day11::Input, Infallible>
[INFO] [stdout]   --> src/days/day11.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         Ok(Input { galaxies, empty })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day11::Input, Infallible>
[INFO] [stdout]   --> src/days/day11.rs:90:21
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Mirror, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let rows: Vec<u32> = s.lines().map(|line| {
[INFO] [stdout] 58 | |             line.chars().fold(0, |acc, c| (acc << 1) | if c == '#' { 1 } else { 0 })
[INFO] [stdout] 59 | |         }).collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 66 | |         Ok(Mirror { size, rows, cols })
[INFO] [stdout] 67 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Mirror, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Ok(Mirror { size, rows, cols })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Input, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:73:53
[INFO] [stdout]    |
[INFO] [stdout] 73 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 74 | |         let mirrors = s.split("\n\n").map(|m| Mirror::from_str(m).unwrap()).collect();
[INFO] [stdout] 75 | |         Ok(Input { mirrors })
[INFO] [stdout] 76 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Mirror, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:74:47
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mirrors = s.split("\n\n").map(|m| Mirror::from_str(m).unwrap()).collect();
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Input, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Ok(Input { mirrors })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Input, Infallible>
[INFO] [stdout]    --> src/days/day13.rs:110:31
[INFO] [stdout]     |
[INFO] [stdout] 110 |         assert_eq!(405, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Input, Infallible>
[INFO] [stdout]    --> src/days/day13.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |         assert_eq!(400, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day14::Input, Infallible>
[INFO] [stdout]   --> src/days/day14.rs:59:53
[INFO] [stdout]    |
[INFO] [stdout] 59 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 60 | |         let map: Vec<Vec<char>> = s
[INFO] [stdout] 61 | |             .lines()
[INFO] [stdout] 62 | |             .map(|line| line.chars().collect())
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |         Ok(Input { map, size: rows })
[INFO] [stdout] 66 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day14::Input, Infallible>
[INFO] [stdout]   --> src/days/day14.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         Ok(Input { map, size: rows })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day14::Input, Infallible>
[INFO] [stdout]    --> src/days/day14.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |         assert_eq!(136, part1(INPUT.parse().unwrap()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day14::Input, Infallible>
[INFO] [stdout]    --> src/days/day14.rs:117:30
[INFO] [stdout]     |
[INFO] [stdout] 117 |         assert_eq!(64, part2(INPUT.parse().unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day15::Input, Infallible>
[INFO] [stdout]   --> src/days/day15.rs:11:57
[INFO] [stdout]    |
[INFO] [stdout] 11 |       fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _________________________________________________________^
[INFO] [stdout] 12 | |         let strings = input.split(",").map(|s| s.to_owned()).collect();
[INFO] [stdout] 13 | |         Ok(Input {strings})
[INFO] [stdout] 14 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day15::Input, Infallible>
[INFO] [stdout]   --> src/days/day15.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         Ok(Input {strings})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day15::Input, Infallible>
[INFO] [stdout]   --> src/days/day15.rs:75:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |         assert_eq!(1320, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day15::Input, Infallible>
[INFO] [stdout]   --> src/days/day15.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |         assert_eq!(145, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day16::Input, Infallible>
[INFO] [stdout]   --> src/days/day16.rs:36:53
[INFO] [stdout]    |
[INFO] [stdout] 36 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 37 | |         let mut map = HashMap::new();
[INFO] [stdout] 38 | |         let size = (s.lines().count() as i32, s.lines().last().unwrap().len() as i32);
[INFO] [stdout] 39 | |         for (i, line) in s.lines().enumerate() {
[INFO] [stdout] ...  |
[INFO] [stdout] 46 | |         Ok(Input::new(map, size))
[INFO] [stdout] 47 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day16::Input, Infallible>
[INFO] [stdout]   --> src/days/day16.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Ok(Input::new(map, size))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day16::Input, Infallible>
[INFO] [stdout]    --> src/days/day16.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day16::Input, Infallible>
[INFO] [stdout]    --> src/days/day16.rs:158:30
[INFO] [stdout]     |
[INFO] [stdout] 158 |         assert_eq!(46, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day16::Input, Infallible>
[INFO] [stdout]    --> src/days/day16.rs:163:30
[INFO] [stdout]     |
[INFO] [stdout] 163 |         assert_eq!(51, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]   --> src/days/day17.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 33 | |         let map = s
[INFO] [stdout] 34 | |             .lines()
[INFO] [stdout] 35 | |             .map(|line| line.chars().map(|c| c.to_digit(10).unwrap()).collect::<Vec<_>>())
[INFO] [stdout] ...  |
[INFO] [stdout] 39 | |         Ok(Input {map, size})
[INFO] [stdout] 40 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]   --> src/days/day17.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Ok(Input {map, size})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]    --> src/days/day17.rs:158:21
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]    --> src/days/day17.rs:167:21
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]    --> src/days/day17.rs:180:31
[INFO] [stdout]     |
[INFO] [stdout] 180 |         assert_eq!(102, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]    --> src/days/day17.rs:185:30
[INFO] [stdout]     |
[INFO] [stdout] 185 |         assert_eq!(94, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]    --> src/days/day17.rs:186:30
[INFO] [stdout]     |
[INFO] [stdout] 186 |         assert_eq!(71, part2(Input::from_str(INPUT2).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day18::Input, Infallible>
[INFO] [stdout]   --> src/days/day18.rs:42:53
[INFO] [stdout]    |
[INFO] [stdout] 42 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 43 | |         let entries = s.lines().map(get_entry_part1).collect();
[INFO] [stdout] 44 | |         let actual_entries = s.lines().map(get_entry_part2).collect();
[INFO] [stdout] 45 | |         Ok(Input {entries, actual_entries})
[INFO] [stdout] 46 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day18::Input, Infallible>
[INFO] [stdout]   --> src/days/day18.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         Ok(Input {entries, actual_entries})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day18::Input, Infallible>
[INFO] [stdout]    --> src/days/day18.rs:125:45
[INFO] [stdout]     |
[INFO] [stdout] 125 |         assert_eq!(38, calculate_perimeter(&Input::from_str(INPUT).unwrap().entries));
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day18::Input, Infallible>
[INFO] [stdout]    --> src/days/day18.rs:130:30
[INFO] [stdout]     |
[INFO] [stdout] 130 |         assert_eq!(62, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day18::Input, Infallible>
[INFO] [stdout]    --> src/days/day18.rs:135:40
[INFO] [stdout]     |
[INFO] [stdout] 135 |         assert_eq!(952408144115, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:45:53
[INFO] [stdout]    |
[INFO] [stdout] 45 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 46 | |         let mut iter = s
[INFO] [stdout] 47 | |             .trim_matches(['{', '}'])
[INFO] [stdout] 48 | |             .split(',')
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | |         Ok(Part { ratings })
[INFO] [stdout] 52 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         Ok(Part { ratings })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Rule, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:58:53
[INFO] [stdout]    |
[INFO] [stdout] 58 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 59 | |         let rule = match s.chars().nth(1) {
[INFO] [stdout] 60 | |             Some(x) if x == '<' || x == '>' => {
[INFO] [stdout] 61 | |                 let i = s.as_bytes()[0];
[INFO] [stdout] ...  |
[INFO] [stdout] 73 | |         Ok(rule)
[INFO] [stdout] 74 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Rule, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Ok(rule)
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::RuleSet, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 81 | |         let (name, rest) = s.split_once('{').unwrap();
[INFO] [stdout] 82 | |         let rules = rest
[INFO] [stdout] 83 | |             .trim_end_matches('}')
[INFO] [stdout] ...  |
[INFO] [stdout] 87 | |         Ok(RuleSet { name: name.to_owned(), rules})
[INFO] [stdout] 88 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Rule, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:85:25
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .map(|rule| Rule::from_str(rule).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::RuleSet, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |         Ok(RuleSet { name: name.to_owned(), rules})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Input, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:94:53
[INFO] [stdout]     |
[INFO] [stdout]  94 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  95 | |         let (rulesets, parts) = s.split_once("\n\n").unwrap();
[INFO] [stdout]  96 | |         let rulesets = rulesets
[INFO] [stdout]  97 | |             .lines()
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |         Ok(Input { rulesets, parts })
[INFO] [stdout] 108 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::RuleSet, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:99:31
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 let ruleset = RuleSet::from_str(rs).unwrap();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:105:25
[INFO] [stdout]     |
[INFO] [stdout] 105 |             .map(|part| Part::from_str(part).unwrap())
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Input, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         Ok(Input { rulesets, parts })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Rule, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:213:66
[INFO] [stdout]     |
[INFO] [stdout] 213 |         assert_eq!(Rule::LessThan(2, 2006, String::from("qkq")), Rule::from_str("a<2006:qkq").unwrap());
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Rule, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:214:67
[INFO] [stdout]     |
[INFO] [stdout] 214 |         assert_eq!(Rule::GreaterThan(1, 2090, String::from("A")), Rule::from_str("m>2090:A").unwrap());
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Rule, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:215:53
[INFO] [stdout]     |
[INFO] [stdout] 215 |         assert_eq!(Rule::Goto(String::from("rfg")), Rule::from_str("rfg").unwrap());
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:220:63
[INFO] [stdout]     |
[INFO] [stdout] 220 |         assert_eq!(Part { ratings: [787, 2655, 1222, 2876] }, Part::from_str("{x=787,m=2655,a=1222,s=2876}").unwrap());
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::RuleSet, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:225:23
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let ruleset = RuleSet::from_str("in{s<1351:px,qqz}").unwrap();
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:226:21
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let part1 = Part::from_str("{x=787,m=2655,a=1222,s=2876}").unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Part, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:227:21
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let part2 = Part::from_str("{x=1679,m=44,a=2067,s=496}").unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Input, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:248:33
[INFO] [stdout]     |
[INFO] [stdout] 248 |         assert_eq!(19114, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Input, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:253:43
[INFO] [stdout]     |
[INFO] [stdout] 253 |         assert_eq!(167409079868000, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Module, Infallible>
[INFO] [stdout]   --> src/days/day20.rs:68:53
[INFO] [stdout]    |
[INFO] [stdout] 68 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 69 | |         let (module, next) = s.split_once(" -> ").unwrap();
[INFO] [stdout] 70 | |         let (t, name) = match module.as_bytes() {
[INFO] [stdout] 71 | |             [b'%', rest @ ..] => (ModuleType::FlipFlop, String::from_utf8_lossy(rest).into_owned()),
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |         Ok(Module { t, name, next, on: false, previous: HashMap::new() })
[INFO] [stdout] 80 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Module, Infallible>
[INFO] [stdout]   --> src/days/day20.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         Ok(Module { t, name, next, on: false, previous: HashMap::new() })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]    --> src/days/day20.rs:86:53
[INFO] [stdout]     |
[INFO] [stdout]  86 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  87 | |         let mut modules: HashMap<_,_> = s.lines()
[INFO] [stdout]  88 | |             .map(|line| Module::from_str(line).unwrap())
[INFO] [stdout]  89 | |             .map(|m| (m.name.clone(), m))
[INFO] [stdout] ...   |
[INFO] [stdout] 100 | |         Ok(Input { modules })
[INFO] [stdout] 101 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Module, Infallible>
[INFO] [stdout]   --> src/days/day20.rs:88:25
[INFO] [stdout]    |
[INFO] [stdout] 88 |             .map(|line| Module::from_str(line).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]    --> src/days/day20.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         Ok(Input { modules })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]    --> src/days/day20.rs:149:36
[INFO] [stdout]     |
[INFO] [stdout] 149 |         assert_eq!(32000000, part1(INPUT1.parse().unwrap()));
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]    --> src/days/day20.rs:150:36
[INFO] [stdout]     |
[INFO] [stdout] 150 |         assert_eq!(11687500, part1(INPUT2.parse().unwrap()));
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day21::Input, Infallible>
[INFO] [stdout]   --> src/days/day21.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 29 | |         let mut map = Vec::new();
[INFO] [stdout] 30 | |         let mut start = (0, 0);
[INFO] [stdout] 31 | |         for (i, line) in s.lines().enumerate() {
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |         Ok(Input {map, size, start})
[INFO] [stdout] 44 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day21::Input, Infallible>
[INFO] [stdout]   --> src/days/day21.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         Ok(Input {map, size, start})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day21::Input, Infallible>
[INFO] [stdout]   --> src/days/day21.rs:96:30
[INFO] [stdout]    |
[INFO] [stdout] 96 |         assert_eq!(16, part1(Input::from_str(INPUT).unwrap(), 6));
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day21::Input, Infallible>
[INFO] [stdout]    --> src/days/day21.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Brick, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:29:53
[INFO] [stdout]    |
[INFO] [stdout] 29 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 30 | |         let bounds = s
[INFO] [stdout] 31 | |             .split('~')
[INFO] [stdout] 32 | |             .map(|pos| {
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |         Ok(Brick { bounds })
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Brick, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         Ok(Brick { bounds })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Input, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 45 | |         let mut bound = (0, 0);
[INFO] [stdout] 46 | |         let bricks = s.lines().map(|line| {
[INFO] [stdout] 47 | |             let b = Brick::from_str(line).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |         Ok(Input { bricks, bound })
[INFO] [stdout] 53 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Brick, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |             let b = Brick::from_str(line).unwrap();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Input, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         Ok(Input { bricks, bound })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Input, Infallible>
[INFO] [stdout]    --> src/days/day22.rs:143:29
[INFO] [stdout]     |
[INFO] [stdout] 143 |         assert_eq!(5, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Input, Infallible>
[INFO] [stdout]    --> src/days/day22.rs:148:29
[INFO] [stdout]     |
[INFO] [stdout] 148 |         assert_eq!(7, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Brick, Infallible>
[INFO] [stdout]    --> src/days/day22.rs:153:62
[INFO] [stdout]     |
[INFO] [stdout] 153 |         assert_eq!(Brick { bounds: vec![(1,0,1), (1,2,1)] }, Brick::from_str("1,0,1~1,2,1").unwrap());
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Brick, Infallible>
[INFO] [stdout]    --> src/days/day22.rs:154:62
[INFO] [stdout]     |
[INFO] [stdout] 154 |         assert_eq!(Brick { bounds: vec![(0,0,2), (2,0,2)] }, Brick::from_str("0,0,2~2,0,2").unwrap());
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Brick, Infallible>
[INFO] [stdout]    --> src/days/day22.rs:155:62
[INFO] [stdout]     |
[INFO] [stdout] 155 |         assert_eq!(Brick { bounds: vec![(1,1,8), (1,1,9)] }, Brick::from_str("1,1,8~1,1,9").unwrap());
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:97:53
[INFO] [stdout]     |
[INFO] [stdout]  97 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  98 | |         let map = s
[INFO] [stdout]  99 | |             .lines()
[INFO] [stdout] 100 | |             .map(|line| line.chars()
[INFO] [stdout] ...   |
[INFO] [stdout] 115 | |         Ok(Input { map, size, start, end })
[INFO] [stdout] 116 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         Ok(Input { map, size, start, end })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:179:21
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:190:21
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let input = Input::from_str(INPUT).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:206:30
[INFO] [stdout]     |
[INFO] [stdout] 206 |         assert_eq!(94, part1(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:211:31
[INFO] [stdout]     |
[INFO] [stdout] 211 |         assert_eq!(154, part2(Input::from_str(INPUT).unwrap()));
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Hailstone, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 18 | |         let mut parts = s
[INFO] [stdout] 19 | |             .split("@")
[INFO] [stdout] 20 | |             .map(|part| part
[INFO] [stdout] ...  |
[INFO] [stdout] 32 | |         Ok(Hailstone { pos, vel })
[INFO] [stdout] 33 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Hailstone, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Ok(Hailstone { pos, vel })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Input, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:39:53
[INFO] [stdout]    |
[INFO] [stdout] 39 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 40 | |         let hailstones = s
[INFO] [stdout] 41 | |             .lines()
[INFO] [stdout] 42 | |             .map(|line| Hailstone::from_str(line).unwrap())
[INFO] [stdout] 43 | |             .collect();
[INFO] [stdout] 44 | |         Ok(Input { hailstones })
[INFO] [stdout] 45 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Hailstone, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 |             .map(|line| Hailstone::from_str(line).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Input, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         Ok(Input { hailstones })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Hailstone, Infallible>
[INFO] [stdout]    --> src/days/day24.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |         assert_eq!(h, Hailstone::from_str("19, 13, 30 @ -2,  1, -2").unwrap());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Input, Infallible>
[INFO] [stdout]    --> src/days/day24.rs:114:43
[INFO] [stdout]     |
[INFO] [stdout] 114 |         assert_eq!(2, count_intersections(Input::from_str(INPUT).unwrap(), 7.0, 27.0));
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aoc-2023-rust` (bin "aoc-2023-rust" test) due to 139 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]   --> src/main.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let input = Input::from_str(&read_from_file(20)).unwrap();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Game, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 18 | |         let (id, rounds) = s.split_once(": ").unwrap();
[INFO] [stdout] 19 | |         let id = id.split_once(" ").unwrap().1.parse().unwrap();
[INFO] [stdout] 20 | |         let rounds = rounds
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |         Ok(Self { id, rounds })
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Game, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         Ok(Self { id, rounds })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Input, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 45 | |         let games = s
[INFO] [stdout] 46 | |             .lines()
[INFO] [stdout] 47 | |             .map(|line| Game::from_str(line).unwrap())
[INFO] [stdout] 48 | |             .collect();
[INFO] [stdout] 49 | |         Ok(Self { games })
[INFO] [stdout] 50 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Game, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:47:25
[INFO] [stdout]    |
[INFO] [stdout] 47 |             .map(|line| Game::from_str(line).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day2_fancy::Input, Infallible>
[INFO] [stdout]   --> src/days/day2_fancy.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         Ok(Self { games })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day3::Input, Infallible>
[INFO] [stdout]   --> src/days/day3.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 33 | |         let mut numbers = Vec::new();
[INFO] [stdout] 34 | |         let mut symbols = Vec::new();
[INFO] [stdout] 35 | |         let mut n: i32 = 0;
[INFO] [stdout] ...  |
[INFO] [stdout] 60 | |         Ok(Input { numbers, symbols })
[INFO] [stdout] 61 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day3::Input, Infallible>
[INFO] [stdout]   --> src/days/day3.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Ok(Input { numbers, symbols })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Card, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 18 | |         let (id, rest) = s.split_once(':').unwrap();
[INFO] [stdout] 19 | |         let id = id.split_whitespace().last().unwrap().parse::<i32>().unwrap();
[INFO] [stdout] 20 | |         let v = rest
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |         Ok(Card { id, score: v[0].intersection(&v[1]).count() as u32})
[INFO] [stdout] 28 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Card, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         Ok(Card { id, score: v[0].intersection(&v[1]).count() as u32})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day4::Input, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:34:53
[INFO] [stdout]    |
[INFO] [stdout] 34 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 35 | |         let cards = s.lines().map(|line| Card::from_str(line).unwrap()).collect();
[INFO] [stdout] 36 | |         Ok(Input { cards })
[INFO] [stdout] 37 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Card, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:35:42
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let cards = s.lines().map(|line| Card::from_str(line).unwrap()).collect();
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day4::Input, Infallible>
[INFO] [stdout]   --> src/days/day4.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |         Ok(Input { cards })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Transform, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 29 | |         let rules = s
[INFO] [stdout] 30 | |             .lines()
[INFO] [stdout] 31 | |             .skip(1)
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |         Ok(Transform { rules })
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Transform, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         Ok(Transform { rules })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day5::Input, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 45 | |         let (seeds, transfoms) = s.split_once("\n\n").unwrap();
[INFO] [stdout] 46 | |         let seeds = seeds.split_whitespace().skip(1).map(|n| n.parse::<i64>().unwrap()).collect();
[INFO] [stdout] 47 | |         let transforms = transfoms.split("\n\n").map(|t| Transform::from_str(t).unwrap()).collect();
[INFO] [stdout] 48 | |         Ok(Input { seeds, transforms })
[INFO] [stdout] 49 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Transform, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let transforms = transfoms.split("\n\n").map(|t| Transform::from_str(t).unwrap()).collect();
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day5::Input, Infallible>
[INFO] [stdout]   --> src/days/day5.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         Ok(Input { seeds, transforms })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:19:53
[INFO] [stdout]    |
[INFO] [stdout] 19 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 20 | |         let (cards, value) = s.split_once(' ').unwrap();
[INFO] [stdout] 21 | |         let cards = cards.chars().collect();
[INFO] [stdout] 22 | |         let value = value.parse().unwrap();
[INFO] [stdout] 23 | |         Ok(Hand { cards, value })
[INFO] [stdout] 24 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok(Hand { cards, value })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day7::Input, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:30:53
[INFO] [stdout]    |
[INFO] [stdout] 30 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 31 | |         let hands = s.lines().map(|line| line.parse().unwrap()).collect();
[INFO] [stdout] 32 | |         Ok(Input { hands })
[INFO] [stdout] 33 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hand, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:31:42
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let hands = s.lines().map(|line| line.parse().unwrap()).collect();
[INFO] [stdout]    |                                          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day7::Input, Infallible>
[INFO] [stdout]   --> src/days/day7.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Ok(Input { hands })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day8::Input, Infallible>
[INFO] [stdout]   --> src/days/day8.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 15 | |         let re = Regex::new(r"([A-Z]{3}) = \(([A-Z]{3}), ([A-Z]{3})\)").unwrap();
[INFO] [stdout] 16 | |         let mut lines = s.lines();
[INFO] [stdout] 17 | |         let directions = lines.next().unwrap().to_owned();
[INFO] [stdout] ...  |
[INFO] [stdout] 26 | |         })
[INFO] [stdout] 27 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day8::Input, Infallible>
[INFO] [stdout]   --> src/days/day8.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | /         Ok(Input {
[INFO] [stdout] 24 | |             directions,
[INFO] [stdout] 25 | |             network,
[INFO] [stdout] 26 | |         })
[INFO] [stdout]    | |__________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day9::Input, Infallible>
[INFO] [stdout]   --> src/days/day9.rs:11:53
[INFO] [stdout]    |
[INFO] [stdout] 11 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 12 | |         let mut stories = Vec::new();
[INFO] [stdout] 13 | |         for line in s.lines() {
[INFO] [stdout] 14 | |             let v = line
[INFO] [stdout] ...  |
[INFO] [stdout] 20 | |         Ok(Input { stories })
[INFO] [stdout] 21 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day9::Input, Infallible>
[INFO] [stdout]   --> src/days/day9.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         Ok(Input { stories })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day10::Input, Infallible>
[INFO] [stdout]   --> src/days/day10.rs:39:57
[INFO] [stdout]    |
[INFO] [stdout] 39 |       fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _________________________________________________________^
[INFO] [stdout] 40 | |         let mut map = Vec::new();
[INFO] [stdout] 41 | |         let mut start = (0, 0);
[INFO] [stdout] 42 | |         for (index, line) in input.lines().enumerate() {
[INFO] [stdout] ...  |
[INFO] [stdout] 48 | |         Ok(Input { map, start })
[INFO] [stdout] 49 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day10::Input, Infallible>
[INFO] [stdout]   --> src/days/day10.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |         Ok(Input { map, start })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day11::Input, Infallible>
[INFO] [stdout]   --> src/days/day11.rs:31:53
[INFO] [stdout]    |
[INFO] [stdout] 31 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 32 | |         let mut galaxies = Vec::new();
[INFO] [stdout] 33 | |         let size = s.lines().count();
[INFO] [stdout] 34 | |         let mut empty = [Vec::new(), Vec::new()];
[INFO] [stdout] ...  |
[INFO] [stdout] 50 | |         Ok(Input { galaxies, empty })
[INFO] [stdout] 51 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day11::Input, Infallible>
[INFO] [stdout]   --> src/days/day11.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |         Ok(Input { galaxies, empty })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Mirror, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:56:53
[INFO] [stdout]    |
[INFO] [stdout] 56 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 57 | |         let rows: Vec<u32> = s.lines().map(|line| {
[INFO] [stdout] 58 | |             line.chars().fold(0, |acc, c| (acc << 1) | if c == '#' { 1 } else { 0 })
[INFO] [stdout] 59 | |         }).collect();
[INFO] [stdout] ...  |
[INFO] [stdout] 66 | |         Ok(Mirror { size, rows, cols })
[INFO] [stdout] 67 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Mirror, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Ok(Mirror { size, rows, cols })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Input, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:73:53
[INFO] [stdout]    |
[INFO] [stdout] 73 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 74 | |         let mirrors = s.split("\n\n").map(|m| Mirror::from_str(m).unwrap()).collect();
[INFO] [stdout] 75 | |         Ok(Input { mirrors })
[INFO] [stdout] 76 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Mirror, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:74:47
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mirrors = s.split("\n\n").map(|m| Mirror::from_str(m).unwrap()).collect();
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day13::Input, Infallible>
[INFO] [stdout]   --> src/days/day13.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Ok(Input { mirrors })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day14::Input, Infallible>
[INFO] [stdout]   --> src/days/day14.rs:59:53
[INFO] [stdout]    |
[INFO] [stdout] 59 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 60 | |         let map: Vec<Vec<char>> = s
[INFO] [stdout] 61 | |             .lines()
[INFO] [stdout] 62 | |             .map(|line| line.chars().collect())
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |         Ok(Input { map, size: rows })
[INFO] [stdout] 66 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day14::Input, Infallible>
[INFO] [stdout]   --> src/days/day14.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         Ok(Input { map, size: rows })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day15::Input, Infallible>
[INFO] [stdout]   --> src/days/day15.rs:11:57
[INFO] [stdout]    |
[INFO] [stdout] 11 |       fn from_str(input: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _________________________________________________________^
[INFO] [stdout] 12 | |         let strings = input.split(",").map(|s| s.to_owned()).collect();
[INFO] [stdout] 13 | |         Ok(Input {strings})
[INFO] [stdout] 14 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day15::Input, Infallible>
[INFO] [stdout]   --> src/days/day15.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |         Ok(Input {strings})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day16::Input, Infallible>
[INFO] [stdout]   --> src/days/day16.rs:36:53
[INFO] [stdout]    |
[INFO] [stdout] 36 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 37 | |         let mut map = HashMap::new();
[INFO] [stdout] 38 | |         let size = (s.lines().count() as i32, s.lines().last().unwrap().len() as i32);
[INFO] [stdout] 39 | |         for (i, line) in s.lines().enumerate() {
[INFO] [stdout] ...  |
[INFO] [stdout] 46 | |         Ok(Input::new(map, size))
[INFO] [stdout] 47 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day16::Input, Infallible>
[INFO] [stdout]   --> src/days/day16.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         Ok(Input::new(map, size))
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]   --> src/days/day17.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 33 | |         let map = s
[INFO] [stdout] 34 | |             .lines()
[INFO] [stdout] 35 | |             .map(|line| line.chars().map(|c| c.to_digit(10).unwrap()).collect::<Vec<_>>())
[INFO] [stdout] ...  |
[INFO] [stdout] 39 | |         Ok(Input {map, size})
[INFO] [stdout] 40 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day17::Input, Infallible>
[INFO] [stdout]   --> src/days/day17.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |         Ok(Input {map, size})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day18::Input, Infallible>
[INFO] [stdout]   --> src/days/day18.rs:42:53
[INFO] [stdout]    |
[INFO] [stdout] 42 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 43 | |         let entries = s.lines().map(get_entry_part1).collect();
[INFO] [stdout] 44 | |         let actual_entries = s.lines().map(get_entry_part2).collect();
[INFO] [stdout] 45 | |         Ok(Input {entries, actual_entries})
[INFO] [stdout] 46 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day18::Input, Infallible>
[INFO] [stdout]   --> src/days/day18.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |         Ok(Input {entries, actual_entries})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Part, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:45:53
[INFO] [stdout]    |
[INFO] [stdout] 45 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 46 | |         let mut iter = s
[INFO] [stdout] 47 | |             .trim_matches(['{', '}'])
[INFO] [stdout] 48 | |             .split(',')
[INFO] [stdout] ...  |
[INFO] [stdout] 51 | |         Ok(Part { ratings })
[INFO] [stdout] 52 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Part, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         Ok(Part { ratings })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Rule, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:58:53
[INFO] [stdout]    |
[INFO] [stdout] 58 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 59 | |         let rule = match s.chars().nth(1) {
[INFO] [stdout] 60 | |             Some(x) if x == '<' || x == '>' => {
[INFO] [stdout] 61 | |                 let i = s.as_bytes()[0];
[INFO] [stdout] ...  |
[INFO] [stdout] 73 | |         Ok(rule)
[INFO] [stdout] 74 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Rule, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Ok(rule)
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<RuleSet, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 81 | |         let (name, rest) = s.split_once('{').unwrap();
[INFO] [stdout] 82 | |         let rules = rest
[INFO] [stdout] 83 | |             .trim_end_matches('}')
[INFO] [stdout] ...  |
[INFO] [stdout] 87 | |         Ok(RuleSet { name: name.to_owned(), rules})
[INFO] [stdout] 88 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Rule, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:85:25
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .map(|rule| Rule::from_str(rule).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<RuleSet, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |         Ok(RuleSet { name: name.to_owned(), rules})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Input, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:94:53
[INFO] [stdout]     |
[INFO] [stdout]  94 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  95 | |         let (rulesets, parts) = s.split_once("\n\n").unwrap();
[INFO] [stdout]  96 | |         let rulesets = rulesets
[INFO] [stdout]  97 | |             .lines()
[INFO] [stdout] ...   |
[INFO] [stdout] 107 | |         Ok(Input { rulesets, parts })
[INFO] [stdout] 108 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<RuleSet, Infallible>
[INFO] [stdout]   --> src/days/day19.rs:99:31
[INFO] [stdout]    |
[INFO] [stdout] 99 |                 let ruleset = RuleSet::from_str(rs).unwrap();
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Part, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:105:25
[INFO] [stdout]     |
[INFO] [stdout] 105 |             .map(|part| Part::from_str(part).unwrap())
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day19::Input, Infallible>
[INFO] [stdout]    --> src/days/day19.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |         Ok(Input { rulesets, parts })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Module, Infallible>
[INFO] [stdout]   --> src/days/day20.rs:68:53
[INFO] [stdout]    |
[INFO] [stdout] 68 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 69 | |         let (module, next) = s.split_once(" -> ").unwrap();
[INFO] [stdout] 70 | |         let (t, name) = match module.as_bytes() {
[INFO] [stdout] 71 | |             [b'%', rest @ ..] => (ModuleType::FlipFlop, String::from_utf8_lossy(rest).into_owned()),
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |         Ok(Module { t, name, next, on: false, previous: HashMap::new() })
[INFO] [stdout] 80 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Module, Infallible>
[INFO] [stdout]   --> src/days/day20.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         Ok(Module { t, name, next, on: false, previous: HashMap::new() })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]    --> src/days/day20.rs:86:53
[INFO] [stdout]     |
[INFO] [stdout]  86 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  87 | |         let mut modules: HashMap<_,_> = s.lines()
[INFO] [stdout]  88 | |             .map(|line| Module::from_str(line).unwrap())
[INFO] [stdout]  89 | |             .map(|m| (m.name.clone(), m))
[INFO] [stdout] ...   |
[INFO] [stdout] 100 | |         Ok(Input { modules })
[INFO] [stdout] 101 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Module, Infallible>
[INFO] [stdout]   --> src/days/day20.rs:88:25
[INFO] [stdout]    |
[INFO] [stdout] 88 |             .map(|line| Module::from_str(line).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day20::Input, Infallible>
[INFO] [stdout]    --> src/days/day20.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |         Ok(Input { modules })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day21::Input, Infallible>
[INFO] [stdout]   --> src/days/day21.rs:28:53
[INFO] [stdout]    |
[INFO] [stdout] 28 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 29 | |         let mut map = Vec::new();
[INFO] [stdout] 30 | |         let mut start = (0, 0);
[INFO] [stdout] 31 | |         for (i, line) in s.lines().enumerate() {
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |         Ok(Input {map, size, start})
[INFO] [stdout] 44 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day21::Input, Infallible>
[INFO] [stdout]   --> src/days/day21.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         Ok(Input {map, size, start})
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Brick, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:29:53
[INFO] [stdout]    |
[INFO] [stdout] 29 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 30 | |         let bounds = s
[INFO] [stdout] 31 | |             .split('~')
[INFO] [stdout] 32 | |             .map(|pos| {
[INFO] [stdout] ...  |
[INFO] [stdout] 37 | |         Ok(Brick { bounds })
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Brick, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |         Ok(Brick { bounds })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Input, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 45 | |         let mut bound = (0, 0);
[INFO] [stdout] 46 | |         let bricks = s.lines().map(|line| {
[INFO] [stdout] 47 | |             let b = Brick::from_str(line).unwrap();
[INFO] [stdout] ...  |
[INFO] [stdout] 52 | |         Ok(Input { bricks, bound })
[INFO] [stdout] 53 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Brick, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 |             let b = Brick::from_str(line).unwrap();
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day22::Input, Infallible>
[INFO] [stdout]   --> src/days/day22.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |         Ok(Input { bricks, bound })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:97:53
[INFO] [stdout]     |
[INFO] [stdout]  97 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]     |  _____________________________________________________^
[INFO] [stdout]  98 | |         let map = s
[INFO] [stdout]  99 | |             .lines()
[INFO] [stdout] 100 | |             .map(|line| line.chars()
[INFO] [stdout] ...   |
[INFO] [stdout] 115 | |         Ok(Input { map, size, start, end })
[INFO] [stdout] 116 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day23::Input, Infallible>
[INFO] [stdout]    --> src/days/day23.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         Ok(Input { map, size, start, end })
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hailstone, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 18 | |         let mut parts = s
[INFO] [stdout] 19 | |             .split("@")
[INFO] [stdout] 20 | |             .map(|part| part
[INFO] [stdout] ...  |
[INFO] [stdout] 32 | |         Ok(Hailstone { pos, vel })
[INFO] [stdout] 33 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hailstone, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Ok(Hailstone { pos, vel })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Input, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:39:53
[INFO] [stdout]    |
[INFO] [stdout] 39 |       fn from_str(s: &str) -> Result<Self, Self::Err> {
[INFO] [stdout]    |  _____________________________________________________^
[INFO] [stdout] 40 | |         let hailstones = s
[INFO] [stdout] 41 | |             .lines()
[INFO] [stdout] 42 | |             .map(|line| Hailstone::from_str(line).unwrap())
[INFO] [stdout] 43 | |             .collect();
[INFO] [stdout] 44 | |         Ok(Input { hailstones })
[INFO] [stdout] 45 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<Hailstone, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 |             .map(|line| Hailstone::from_str(line).unwrap())
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<day24::Input, Infallible>
[INFO] [stdout]   --> src/days/day24.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         Ok(Input { hailstones })
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `aoc-2023-rust` (bin "aoc-2023-rust") due to 76 previous errors
[INFO] running `Command { std: "docker" "inspect" "183aba0c1f1e9fc4f272963f54b85baec8d8ea8b22622eb5cb0aa40e0a690ff1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "183aba0c1f1e9fc4f272963f54b85baec8d8ea8b22622eb5cb0aa40e0a690ff1", kill_on_drop: false }`
[INFO] [stdout] 183aba0c1f1e9fc4f272963f54b85baec8d8ea8b22622eb5cb0aa40e0a690ff1
