[INFO] cloning repository https://github.com/TheArtistGuy/advent_of_code_2021
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TheArtistGuy/advent_of_code_2021" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheArtistGuy%2Fadvent_of_code_2021", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTheArtistGuy%2Fadvent_of_code_2021'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9884713edfc625ec1735ae424a4ed6b9679387fa
[INFO] checking TheArtistGuy/advent_of_code_2021 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%2FTheArtistGuy%2Fadvent_of_code_2021" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/TheArtistGuy/advent_of_code_2021
[INFO] finished tweaking git repo https://github.com/TheArtistGuy/advent_of_code_2021
[INFO] tweaked toml for git repo https://github.com/TheArtistGuy/advent_of_code_2021 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TheArtistGuy/advent_of_code_2021 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/TheArtistGuy/advent_of_code_2021 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-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 37ec3419d2f987b4d983c330f05a28b877c14ca61be637feb0eac21d1e28fdc3
[INFO] running `Command { std: "docker" "start" "-a" "37ec3419d2f987b4d983c330f05a28b877c14ca61be637feb0eac21d1e28fdc3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "37ec3419d2f987b4d983c330f05a28b877c14ca61be637feb0eac21d1e28fdc3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37ec3419d2f987b4d983c330f05a28b877c14ca61be637feb0eac21d1e28fdc3", kill_on_drop: false }`
[INFO] [stdout] 37ec3419d2f987b4d983c330f05a28b877c14ca61be637feb0eac21d1e28fdc3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 7f87dac2b139cae595515e38bd37a96f3ba30a23938a28b0fb700adc59f20d64
[INFO] running `Command { std: "docker" "start" "-a" "7f87dac2b139cae595515e38bd37a96f3ba30a23938a28b0fb700adc59f20d64", kill_on_drop: false }`
[INFO] [stderr]     Checking pathfinding v3.0.5
[INFO] [stderr]     Checking advent_of_code_2021 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::day15::day15`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::day15::day15;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/mat2d.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/mat2d.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 |         if (position + 1 > self.height) {return None};
[INFO] [stdout]     |            ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 176 -         if (position + 1 > self.height) {return None};
[INFO] [stdout] 176 +         if position + 1 > self.height  {return None};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `return` value
[INFO] [stdout]    --> src/day10.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     return {BranchResult::Unfinished(rest, inclomplete)}
[INFO] [stdout]     |            ^                                           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 117 -     return {BranchResult::Unfinished(rest, inclomplete)}
[INFO] [stdout] 117 +     return BranchResult::Unfinished(rest, inclomplete) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::raw::ino_t`
[INFO] [stdout]    --> src/day10.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     use std::os::unix::raw::ino_t;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `determine_incompleteness_value`
[INFO] [stdout]    --> src/day10.rs:180:70
[INFO] [stdout]     |
[INFO] [stdout] 180 |     use crate::day10::{check_for_corruption, compute_incompleteness, determine_incompleteness_value, parse_lines};
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mat2d::Mat2d`
[INFO] [stdout]    --> src/day11.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     use crate::mat2d::Mat2d;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::linux::raw::stat`
[INFO] [stdout]  --> src/day12.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::os::linux::raw::stat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]    --> src/day12.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     use std::cell::RefCell;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]    --> src/day12.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     use std::rc::Rc;
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::metadata`
[INFO] [stdout]    --> src/day13.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     use std::fs::metadata;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mat2d::Mat2d`
[INFO] [stdout]    --> src/day13.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     use crate::mat2d::Mat2d;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/day15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/day15.rs:181:88
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let mut mat_new = Mat2d::from(vec![0; (mat_1.width + mat_2.width) * mat_1.height], (mat_1.width + mat_2.width), mat_1.height);
[INFO] [stdout]     |                                                                                        ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -     let mut mat_new = Mat2d::from(vec![0; (mat_1.width + mat_2.width) * mat_1.height], (mat_1.width + mat_2.width), mat_1.height);
[INFO] [stdout] 181 +     let mut mat_new = Mat2d::from(vec![0; (mat_1.width + mat_2.width) * mat_1.height], mat_1.width + mat_2.width , mat_1.height);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mat2d::Mat2d`
[INFO] [stdout]    --> src/day15.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |     use crate::mat2d::Mat2d;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_quantum_dice`
[INFO] [stdout]    --> src/day21.rs:136:49
[INFO] [stdout]     |
[INFO] [stdout] 136 |     use crate::day21::{DeterministicDice, game, game_quantum_dice, Player};
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::os::unix::raw::ino_t`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stdout]    --> src/day10.rs:178:29
[INFO] [stdout]     |
[INFO] [stdout] 178 |     use std::os::unix::raw::ino_t;
[INFO] [stdout]     |                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::os::linux::raw::stat`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stdout]  --> src/day12.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::os::linux::raw::stat;
[INFO] [stdout]   |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::day15::day15`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::day15::day15;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/mat2d.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/mat2d.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 |         if (position + 1 > self.height) {return None};
[INFO] [stdout]     |            ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 176 -         if (position + 1 > self.height) {return None};
[INFO] [stdout] 176 +         if position + 1 > self.height  {return None};
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `return` value
[INFO] [stdout]    --> src/day10.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     return {BranchResult::Unfinished(rest, inclomplete)}
[INFO] [stdout]     |            ^                                           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 117 -     return {BranchResult::Unfinished(rest, inclomplete)}
[INFO] [stdout] 117 +     return BranchResult::Unfinished(rest, inclomplete) 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::linux::raw::stat`
[INFO] [stdout]  --> src/day12.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::os::linux::raw::stat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/day15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/day15.rs:181:88
[INFO] [stdout]     |
[INFO] [stdout] 181 |     let mut mat_new = Mat2d::from(vec![0; (mat_1.width + mat_2.width) * mat_1.height], (mat_1.width + mat_2.width), mat_1.height);
[INFO] [stdout]     |                                                                                        ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -     let mut mat_new = Mat2d::from(vec![0; (mat_1.width + mat_2.width) * mat_1.height], (mat_1.width + mat_2.width), mat_1.height);
[INFO] [stdout] 181 +     let mut mat_new = Mat2d::from(vec![0; (mat_1.width + mat_2.width) * mat_1.height], mat_1.width + mat_2.width , mat_1.height);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `std::os::linux::raw::stat`: these type aliases are no longer supported by the standard library, the `libc` crate on crates.io should be used instead for the correct definitions
[INFO] [stdout]  --> src/day12.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::os::linux::raw::stat;
[INFO] [stdout]   |                          ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/day12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/day12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]    --> src/day12.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |     use std::borrow::Borrow;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mat2d.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut mat: Mat2d<i32> = Mat2d::from(
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/day9.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         Some(val) => {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mat2d.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let mut mat: Mat2d<i32> = Mat2d::from(
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day11.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn handle_flash(mut world: &mut Mat2d<i32>, has_flashed: &mut Mat2d<bool>, x: usize, y: usize) {
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day11.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn flash_neighbor(mut world: &mut Mat2d<i32>, has_flashed: &mut Mat2d<bool>, x: usize, y: usize) {
[INFO] [stdout]     |                   ----^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut visited_nodes:Vec<Rc<RefCell<Node>>> = Vec::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:58:25
[INFO] [stdout]    |
[INFO] [stdout] 58 |                     for mut x in before.iter() {
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/day12.rs:52:43
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let (element_in_visited_list, count) = determine_is_in_visited(next, &mut visited, allow_second_time);
[INFO] [stdout]    |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut f = get_node(&nodes, from);
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut t = get_node(&nodes, to);
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 |         (Some(mut x), Some(mut y)) => {
[INFO] [stdout]     |               ----^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:138:28
[INFO] [stdout]     |
[INFO] [stdout] 138 |         (Some(mut x), Some(mut y)) => {
[INFO] [stdout]     |                            ----^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:142:15
[INFO] [stdout]     |
[INFO] [stdout] 142 |         (Some(mut x), None) => {
[INFO] [stdout]     |               ----^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |         (None, Some(mut y)) => {
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 |             let mut n = Rc::new(RefCell::new(Node {
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |             let mut m = Rc::new(RefCell::new(Node {
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/day14.rs:39:47
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut as_vec:Vec<i64>= map.iter().map(|(x,y)| *y).collect();
[INFO] [stdout]    |                                               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/day9.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         Some(val) => {
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cost`
[INFO] [stdout]   --> src/day15.rs:79:35
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let (_,((x_new,y_new),cost,former_new)) = fetch_in_table(&table_searched, &former).unwrap();
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let mut m_right : Vec<i32>= mat_1.vector.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut m_right_2 : Vec<i32>= m_right.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut m_right_3 : Vec<i32>= m_right_2.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let mut m_right_4 : Vec<i32>= m_right_3.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day11.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn handle_flash(mut world: &mut Mat2d<i32>, has_flashed: &mut Mat2d<bool>, x: usize, y: usize) {
[INFO] [stdout]    |                 ----^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day11.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn flash_neighbor(mut world: &mut Mat2d<i32>, has_flashed: &mut Mat2d<bool>, x: usize, y: usize) {
[INFO] [stdout]     |                   ----^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let mut visited_nodes:Vec<Rc<RefCell<Node>>> = Vec::new();
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:58:25
[INFO] [stdout]    |
[INFO] [stdout] 58 |                     for mut x in before.iter() {
[INFO] [stdout]    |                         ----^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/day12.rs:52:43
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let (element_in_visited_list, count) = determine_is_in_visited(next, &mut visited, allow_second_time);
[INFO] [stdout]    |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let mut f = get_node(&nodes, from);
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut t = get_node(&nodes, to);
[INFO] [stdout]     |         ----^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 |         (Some(mut x), Some(mut y)) => {
[INFO] [stdout]     |               ----^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:138:28
[INFO] [stdout]     |
[INFO] [stdout] 138 |         (Some(mut x), Some(mut y)) => {
[INFO] [stdout]     |                            ----^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:142:15
[INFO] [stdout]     |
[INFO] [stdout] 142 |         (Some(mut x), None) => {
[INFO] [stdout]     |               ----^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |         (None, Some(mut y)) => {
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:159:17
[INFO] [stdout]     |
[INFO] [stdout] 159 |             let mut n = Rc::new(RefCell::new(Node {
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day12.rs:163:17
[INFO] [stdout]     |
[INFO] [stdout] 163 |             let mut m = Rc::new(RefCell::new(Node {
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day1` is never used
[INFO] [stdout]  --> src/day1.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day1(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sonar_sweep` is never used
[INFO] [stdout]   --> src/day1.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn sonar_sweep(input_string : &String) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sweep` is never used
[INFO] [stdout]   --> src/day1.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn sweep(input: &Vec<i32>) -> u32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sonar_sweep_summed` is never used
[INFO] [stdout]   --> src/day1.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn sonar_sweep_summed(input_string: &String) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum_inputs` is never used
[INFO] [stdout]   --> src/day1.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn sum_inputs(input: &mut Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day1.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn parse_input(input_string: &String, input: &mut Vec<i32>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day2` is never used
[INFO] [stdout]  --> src/day2.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day2(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_and_print_part1` is never used
[INFO] [stdout]   --> src/day2.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn compute_and_print_part1(data: &String) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_and_print_part2` is never used
[INFO] [stdout]   --> src/day2.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn compute_and_print_part2(data: &String) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `steer_ship` is never used
[INFO] [stdout]   --> src/day2.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn steer_ship(input: &String) -> (i32 , i32) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `steer_ship_with_aim` is never used
[INFO] [stdout]   --> src/day2.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn steer_ship_with_aim(input: &String) -> (i32, i32){
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3` is never used
[INFO] [stdout]  --> src/day3.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) fn day3(){
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diagnostic` is never used
[INFO] [stdout]   --> src/day3.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn diagnostic(data: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diag_2` is never used
[INFO] [stdout]   --> src/day3.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn diag_2 (data: String) -> i32 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_to_matrix` is never used
[INFO] [stdout]   --> src/day3.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn parse_to_matrix(data: String, data_int: &mut Vec<Vec<i32>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_oxygen` is never used
[INFO] [stdout]   --> src/day3.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn determine_oxygen(data_int: &Vec<Vec<i32>>, length: &usize) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_co2` is never used
[INFO] [stdout]   --> src/day3.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn determine_co2(data_int: & Vec<Vec<i32>>, length: &usize) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bin_to_dec` is never used
[INFO] [stdout]   --> src/day3.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn bin_to_dec(res_bin_in: Box<Vec<i32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lines` is never used
[INFO] [stdout]    --> src/day3.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn parse_lines(data: &String) -> (i32, Box<Vec<i32>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determinate_gamma_and_epsilon` is never used
[INFO] [stdout]    --> src/day3.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn determinate_gamma_and_epsilon(count: &mut i32, v_in: &mut Box<Vec<i32>>) -> (Box<Vec<i32>>, Box<Vec<i32>>){
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Field` is never constructed
[INFO] [stdout]  --> src/day4.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Field{
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]   --> src/day4.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Board{
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_field`, `set_field_number`, and `set_field_called` are never used
[INFO] [stdout]   --> src/day4.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Board {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 18 |     fn new(width : usize, height : usize) ->Self{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn get_field(&self, col : usize, row : usize) -> Option<&Field> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn set_field_number(&mut self, col : usize, row : usize, value : i32) -> Result<bool, &str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn set_field_called(&mut self, col : usize, row : usize, value :bool) -> Result<bool, &str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4` is never used
[INFO] [stdout]   --> src/day4.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn day4(){
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bingo` is never used
[INFO] [stdout]   --> src/day4.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn bingo(data: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bingo_presience` is never used
[INFO] [stdout]   --> src/day4.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn bingo_presience(data: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_result` is never used
[INFO] [stdout]   --> src/day4.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn compute_result(winning_board: Option<Board>, winning_number: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day4.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn parse_input(data: &String) -> (Vec<i32>, Vec<Board>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_bingo_numbers_to_last_board` is never used
[INFO] [stdout]    --> src/day4.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn call_bingo_numbers_to_last_board(numbers: &mut Vec<i32>, boards: &mut Vec<Board>) -> (Option<Board>, i32){
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `call_bingo_numbers` is never used
[INFO] [stdout]    --> src/day4.rs:160:4
[INFO] [stdout]     |
[INFO] [stdout] 160 | fn call_bingo_numbers(numbers: &mut Vec<i32>, boards: &mut Vec<Board>) -> (Option<Board>, i32){
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_board` is never used
[INFO] [stdout]    --> src/day4.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn check_board(board: &mut Board, num: &i32) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_horizontals` is never used
[INFO] [stdout]    --> src/day4.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn check_horizontals(board: & Board) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_diagonals` is never used
[INFO] [stdout]    --> src/day4.rs:200:4
[INFO] [stdout]     |
[INFO] [stdout] 200 | fn check_diagonals(board: &mut Board) -> bool{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_number_on_board` is never used
[INFO] [stdout]    --> src/day4.rs:215:4
[INFO] [stdout]     |
[INFO] [stdout] 215 | fn check_number_on_board(board: &mut Board, num: &i32) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mat2d` is never constructed
[INFO] [stdout]  --> src/mat2d.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Mat2d<T> where T:Clone{
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/mat2d.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl<T> Mat2d<T> where T:Clone{
[INFO] [stdout]     | ------------------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  17 |     pub fn from(vector : Vec<T>, width: usize, height: usize) -> Self{
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn get_width(&self) -> usize{
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn get_height(&self) -> usize{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     pub fn get_as_vector(&self) -> &Vec<T>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn set_to_vector(&mut self, vector : Vec<T>){
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn resize(&mut self, width : usize, height : usize){
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn empty() -> Self{
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn get_value(&self, col : usize, row : usize) -> Option<&T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn get_value_in_position_of_i32(&self, col : i32, row : i32) -> Option<&T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn set_value(&mut self, col : usize, row : usize, value : T) -> Result<bool, &str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn copy_part(&self, from_col : usize, to_col : usize, from_row : usize, to_row : usize) -> Option<Mat2d<T>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn split_vertical(&self, position : usize) -> Option<(Mat2d<T>, Mat2d<T>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn split_horizontal(&self, position: usize) -> Option<(Mat2d<T>, Mat2d<T>)>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn vertical_inverted_copy(&self) -> Mat2d<T>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn horizontal_inverted_copy(&self) -> Mat2d<T>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day5` is never used
[INFO] [stdout]  --> src/day5.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn day5(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day5.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn part1(input: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day5.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn part2(input : &String)-> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day5.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn parse_input(input : &String) -> Vec<Line> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Line` is never constructed
[INFO] [stdout]   --> src/day5.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct Line{
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_ways_to_matrix` is never used
[INFO] [stdout]   --> src/day5.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn draw_ways_to_matrix(ways: &Vec<Line>, is_drawing_diagonals: bool) -> Mat2d<i32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_diagonal_line` is never used
[INFO] [stdout]   --> src/day5.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn draw_diagonal_line(matrix: &mut Mat2d<i32>, line: &&Line) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_line_to_top_right` is never used
[INFO] [stdout]   --> src/day5.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn draw_line_to_top_right(matrix: &mut Mat2d<i32>, x_end: i32, y_end: i32, mut x: i32, mut y: i32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_line_to_top_left` is never used
[INFO] [stdout]   --> src/day5.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn draw_line_to_top_left(matrix: &mut Mat2d<i32>, x_end: i32, y_end: i32, mut x: i32, mut y: i32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_diagonal_path` is never used
[INFO] [stdout]    --> src/day5.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn init_diagonal_path(line: &&Line) -> (i32, i32, i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_horizontal_line` is never used
[INFO] [stdout]    --> src/day5.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn draw_horizontal_line(mat: &mut Mat2d<i32>, line: &&Line) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_line_from_top_to_bottom` is never used
[INFO] [stdout]    --> src/day5.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn draw_line_from_top_to_bottom(mat: &mut Mat2d<i32>, line: &&Line) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_line_from_bottom_to_top` is never used
[INFO] [stdout]    --> src/day5.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn draw_line_from_bottom_to_top(mat: &mut Mat2d<i32>, line: &&Line) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_vertical_line` is never used
[INFO] [stdout]    --> src/day5.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn draw_vertical_line(mat: &mut Mat2d<i32>, line: &&Line) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_line_from_right_to_left` is never used
[INFO] [stdout]    --> src/day5.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn draw_line_from_right_to_left(mat: &mut Mat2d<i32>, line: &&Line) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_line_from_left_to_right` is never used
[INFO] [stdout]    --> src/day5.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn draw_line_from_left_to_right(mat: &mut Mat2d<i32>, line: &&Line) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_x` is never used
[INFO] [stdout]    --> src/day5.rs:161:4
[INFO] [stdout]     |
[INFO] [stdout] 161 | fn max_x(ways: &&Vec<Line>) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_y` is never used
[INFO] [stdout]    --> src/day5.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn max_y(ways: &&Vec<Line>) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_overlap` is never used
[INFO] [stdout]    --> src/day5.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn count_overlap(matrix: &Mat2d<i32>) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day6` is never used
[INFO] [stdout]  --> src/day6.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day6(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day6.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn part_1(data: &String) -> u64 {
[INFO] [stdout]   |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day6.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn part_2(data: &String) -> u64 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day6.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) fn parse_input(input: &String) -> Vec<u8> {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sort_to_bins` is never used
[INFO] [stdout]   --> src/day6.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn sort_to_bins(pond: &Vec<u8>) -> [u64;9] {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance` is never used
[INFO] [stdout]   --> src/day6.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn advance(bins: &[u64; 9], days: i32) -> [u64; 9] {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_fish_in_bins` is never used
[INFO] [stdout]   --> src/day6.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn count_fish_in_bins(bins: &[u64; 9]) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day7` is never used
[INFO] [stdout]  --> src/day7.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day7(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day7.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn part1(data : &String) -> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day7.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn part2(data : &String) -> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day7.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn parse_input(input: &String) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Way` is never constructed
[INFO] [stdout]   --> src/day7.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct Way {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_ways` is never used
[INFO] [stdout]   --> src/day7.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn compute_ways(points: &mut Vec<i32>) -> Vec<Way> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_ways_higher_costs` is never used
[INFO] [stdout]   --> src/day7.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn compute_ways_higher_costs(points: &mut Vec<i32>) -> Vec<Way> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_minimal` is never used
[INFO] [stdout]   --> src/day7.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_minimal(ways: &mut Vec<Way>) -> Way {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day8` is never used
[INFO] [stdout]  --> src/day8.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day8(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day8.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn part1(input: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day8.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn part2(input: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_wires_and_output` is never used
[INFO] [stdout]   --> src/day8.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn split_wires_and_output(entry: &str) -> (Vec<&str>, Vec<&str>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_displayed_number` is never used
[INFO] [stdout]   --> src/day8.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn determine_displayed_number(output: Vec<&str>, numbers: [&str; 10]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_wiring_of_numbers` is never used
[INFO] [stdout]   --> src/day8.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn determine_wiring_of_numbers(wires: Vec<&str>) -> [&str; 10] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contains_all_chars` is never used
[INFO] [stdout]   --> src/day8.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn contains_all_chars(p0: &&str, p1: &&str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day9` is never used
[INFO] [stdout]  --> src/day9.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn day9(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day9.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn part1(data: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day9.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn part2(data : &String) -> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/day9.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn parse(data: &String) -> Mat2d<i32> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_heat_map` is never used
[INFO] [stdout]   --> src/day9.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn create_heat_map(mat: &Mat2d<i32>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_lower_than_all_neighbours` is never used
[INFO] [stdout]   --> src/day9.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn is_lower_than_all_neighbours(mat :&Mat2d<i32>, number : &i32, ix : i32, iy : i32) -> bool{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_lower` is never used
[INFO] [stdout]   --> src/day9.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn is_lower(num: &i32, neighbour: Option<&i32>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_basins` is never used
[INFO] [stdout]   --> src/day9.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn find_basins(mat: &Mat2d<i32>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_basin` is never used
[INFO] [stdout]   --> src/day9.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn scan_basin(mat: &Mat2d<i32>, found_map: &mut Mat2d<bool>, x: usize, y: usize, basin: &mut Vec<i32>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_neighbor` is never used
[INFO] [stdout]    --> src/day9.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn try_neighbor(mat: &Mat2d<i32>, found_map: &mut Mat2d<bool>, basin: &mut Vec<i32>, ix: i32, iy: i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day10` is never used
[INFO] [stdout]  --> src/day10.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn day10(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result` is never used
[INFO] [stdout]   --> src/day10.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn result(data : &String) -> (i32, i64){
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lines` is never used
[INFO] [stdout]   --> src/day10.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn parse_lines(data: &String) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_corruption` is never used
[INFO] [stdout]   --> src/day10.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn check_for_corruption(lines: Vec<Vec<char>>) -> (Vec<Vec<char>>, Vec<i32>, Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_opening_char` is never used
[INFO] [stdout]   --> src/day10.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn is_opening_char(c : &char)-> bool{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_closing_char` is never used
[INFO] [stdout]   --> src/day10.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn is_closing_char(c : &char)-> bool{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BranchResult` is never used
[INFO] [stdout]   --> src/day10.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum BranchResult<'a>{
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_branch` is never used
[INFO] [stdout]   --> src/day10.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn new_branch<'a>(arr: &'a [char]) -> BranchResult {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_corrupton_value` is never used
[INFO] [stdout]    --> src/day10.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn determine_corrupton_value(c: &char) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_incompleteness` is never used
[INFO] [stdout]    --> src/day10.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn compute_incompleteness(incomplete: Vec<Vec<char>>) -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_incompleteness_value` is never used
[INFO] [stdout]    --> src/day10.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn determine_incompleteness_value(c: &char) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_opposing_char` is never used
[INFO] [stdout]    --> src/day10.rs:159:4
[INFO] [stdout]     |
[INFO] [stdout] 159 | fn determine_opposing_char(character: &char) -> char {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day11` is never used
[INFO] [stdout]  --> src/day11.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn day11(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_synchronized_event` is never used
[INFO] [stdout]   --> src/day11.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn find_synchronized_event(world: &mut Mat2d<i32>) -> i32{
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `advance_to_generation_and_count_flashes` is never used
[INFO] [stdout]   --> src/day11.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn advance_to_generation_and_count_flashes(world: &mut Mat2d<i32>, generations: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_flashed_to_zero` is never used
[INFO] [stdout]   --> src/day11.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn set_flashed_to_zero(world: &mut Mat2d<i32>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_flashes` is never used
[INFO] [stdout]   --> src/day11.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn handle_flashes(world: &mut Mat2d<i32>, mut has_flashed: &mut Mat2d<bool>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increase_by_one` is never used
[INFO] [stdout]   --> src/day11.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn increase_by_one(world: &mut Mat2d<i32>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_flash` is never used
[INFO] [stdout]   --> src/day11.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn handle_flash(mut world: &mut Mat2d<i32>, has_flashed: &mut Mat2d<bool>, x: usize, y: usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flash_neighbor` is never used
[INFO] [stdout]    --> src/day11.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn flash_neighbor(mut world: &mut Mat2d<i32>, has_flashed: &mut Mat2d<bool>, x: usize, y: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day11.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn parse_input(data: &String) -> Mat2d<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day12` is never used
[INFO] [stdout]  --> src/day12.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn day12(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_to_vertices` is never used
[INFO] [stdout]   --> src/day12.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn parse_to_vertices(data: &String) -> Vec<(&str, &str)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/day12.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct Node{
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_ways` is never used
[INFO] [stdout]   --> src/day12.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn check_ways(vertices: &Vec<(&str, &str)>, allow_second_time: bool) -> Vec<Vec<Rc<RefCell<Node>>>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `visit_next_node` is never used
[INFO] [stdout]   --> src/day12.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn visit_next_node(node: &Rc<RefCell<Node>>, mut visited: Vec<Rc<RefCell<Node>>>, allow_second_time: bool) -> Vec<Vec<Rc<RefCell<Node>>>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_visit_policy` is never used
[INFO] [stdout]   --> src/day12.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn determine_visit_policy(node: &&Rc<RefCell<Node>>, allow_second_time: bool, count: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_to_visited` is never used
[INFO] [stdout]   --> src/day12.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn add_to_visited(node: &&Rc<RefCell<Node>>, mut visited: &mut Vec<Rc<RefCell<Node>>>, allow_second_time: bool) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filter_ways_which_do_reach_end` is never used
[INFO] [stdout]   --> src/day12.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn filter_ways_which_do_reach_end(ways: &mut Vec<Vec<Rc<RefCell<Node>>>>) -> Vec<Vec<Rc<RefCell<Node>>>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_is_in_visited` is never used
[INFO] [stdout]    --> src/day12.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn determine_is_in_visited(node: &Rc<RefCell<Node>>, visited: &mut Vec<Rc<RefCell<Node>>>, allow_second_time: bool) -> (Option<Rc<RefCell...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_end` is never used
[INFO] [stdout]    --> src/day12.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn to_end(way: &&Vec<Rc<RefCell<Node>>>) -> bool {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_big_cavern` is never used
[INFO] [stdout]    --> src/day12.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn is_big_cavern(node: &&Rc<RefCell<Node>>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_start` is never used
[INFO] [stdout]    --> src/day12.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn get_start(nodes: &Vec<Rc<RefCell<Node>>>) -> Option<Rc<RefCell<Node>>> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_nodes_with_vertices` is never used
[INFO] [stdout]    --> src/day12.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn create_nodes_with_vertices(nodes: &mut Vec<Rc<RefCell<Node>>>, from: &&str, to: &&str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_node` is never used
[INFO] [stdout]    --> src/day12.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn get_node<'a>(nodes: &Vec<Rc<RefCell<Node>>>, name: &&str) -> Option<Rc<RefCell<Node>>> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_node_and_count` is never used
[INFO] [stdout]    --> src/day12.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn get_node_and_count<'a>(nodes: &Vec<Rc<RefCell<Node>>>, name: &&str, max_count : i32) -> (Option<Rc<RefCell<Node>>>, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day13` is never used
[INFO] [stdout]  --> src/day13.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn day13(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day13.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn part1(data :&str) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day13.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn part2(data :&str){
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day13.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_input(data: &String) ->  (Mat2d<bool>, Vec<(String, usize)>){
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_position_line` is never used
[INFO] [stdout]   --> src/day13.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn parse_position_line(line: &str) -> (i32, i32){
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_instruction_line` is never used
[INFO] [stdout]   --> src/day13.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn parse_instruction_line(line: &str) -> (String, usize){
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_matrix` is never used
[INFO] [stdout]   --> src/day13.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn initialize_matrix(mut positions: &mut Vec<(i32, i32)>) -> Mat2d<bool> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_max_positions` is never used
[INFO] [stdout]   --> src/day13.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn determine_max_positions(positions: &mut Vec<(i32, i32)>) -> (usize, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_instructions` is never used
[INFO] [stdout]   --> src/day13.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn process_instructions(matrix: Mat2d<bool>, instructions: &Vec<(String, usize)>) -> Mat2d<bool> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `horizontal_split` is never used
[INFO] [stdout]    --> src/day13.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn horizontal_split(mat: &mut Mat2d<bool>, position: &usize) -> (Mat2d<bool>, Mat2d<bool>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vertical_split` is never used
[INFO] [stdout]    --> src/day13.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn vertical_split(mat: &mut Mat2d<bool>, position: &usize) -> (Mat2d<bool>, Mat2d<bool>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fold_to_bigger` is never used
[INFO] [stdout]    --> src/day13.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn fold_to_bigger(smaller: Mat2d<bool>, mut bigger: Mat2d<bool>) -> Mat2d<bool> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_mat` is never used
[INFO] [stdout]    --> src/day13.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn print_mat(mat : &Mat2d<bool>){
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day14` is never used
[INFO] [stdout]  --> src/day14.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn day14(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day14.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn part1(data: &String) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day14.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn part2(data: &String) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_numbers` is never used
[INFO] [stdout]   --> src/day14.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn determine_numbers(polymer: Vec<char>) -> (i64, i64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day14.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_input(data: &String) -> (Vec<char>, Vec<(String, char)>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_instruction_line` is never used
[INFO] [stdout]   --> src/day14.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn read_instruction_line(instructions: &mut Vec<(String, char)>, line: &str) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_step` is never used
[INFO] [stdout]   --> src/day14.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn to_step(in_polymer: &Vec<char>, instructions : &Vec<(String, char)>, steps: usize) -> Vec<char> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_actual_instruction` is never used
[INFO] [stdout]   --> src/day14.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn fetch_actual_instruction(input: String, instructions: &Vec<(String, char)>) -> Option<char> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day15` is never used
[INFO] [stdout]  --> src/day15.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn day15(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra` is never used
[INFO] [stdout]   --> src/day15.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn dijkstra(mat : & Mat2d<i32>, from : (i32,i32), to : (i32, i32) ) -> (Vec<(i32, i32)>, i32) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_entry` is never used
[INFO] [stdout]   --> src/day15.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn create_entry(mat: &Mat2d<i32>, table_not_searched: &mut Vec<((i32, i32), i32, (i32, i32))>, actual_node: (i32, i32), pos: (i32, i32), ...
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fetch_in_table` is never used
[INFO] [stdout]   --> src/day15.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn fetch_in_table<'a>(entrys: &'a Vec<((i32, i32), i32, (i32, i32)) >, pos : &(i32, i32) ) -> Option<(usize, ((&'a i32, &'a i32), &'a i32...
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `neighboring_valid_positions` is never used
[INFO] [stdout]    --> src/day15.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn neighboring_valid_positions(mat: &Mat2d<i32>, x: i32, y: i32) -> Vec<(i32, i32)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day15.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn parse_input(data: &String) -> Mat2d<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unfold_matrix` is never used
[INFO] [stdout]    --> src/day15.rs:144:4
[INFO] [stdout]     |
[INFO] [stdout] 144 | fn unfold_matrix(mat: &Mat2d<i32>) -> Mat2d<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_cost` is never used
[INFO] [stdout]    --> src/day15.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 | fn calculate_cost(x: &i32) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]    --> src/day15.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn merge(mat_1: Mat2d<i32>, mat_2: Mat2d<i32>) -> Mat2d<i32> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_mat` is never used
[INFO] [stdout]    --> src/day15.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn print_mat(mat : &Mat2d<i32>){
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day16` is never used
[INFO] [stdout]  --> src/day16.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) fn day16(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]   --> src/day16.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn decode(start :usize, bin: &Vec<u8>) -> (usize, u32, u64) {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bin_to_dec` is never used
[INFO] [stdout]    --> src/day16.rs:287:4
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn bin_to_dec(bin: &[u8]) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_to_binary` is never used
[INFO] [stdout]    --> src/day16.rs:296:4
[INFO] [stdout]     |
[INFO] [stdout] 296 | fn read_to_binary(input: &String) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day17` is never used
[INFO] [stdout]  --> src/day17.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn day17(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TargetArea` is never constructed
[INFO] [stdout]  --> src/day17.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct TargetArea{
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_hit` are never used
[INFO] [stdout]   --> src/day17.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TargetArea {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 16 |     fn new(x_from: i64, x_to: i64, y_from: i64, y_to: i64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn is_hit(&self, x: &i64, y: &i64) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_iteration` is never used
[INFO] [stdout]   --> src/day17.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn next_iteration(x: &mut i64, x_velocity: &mut i64, y: &mut i64, y_velocity: &mut i64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `determine_maximum_height` is never used
[INFO] [stdout]   --> src/day17.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn determine_maximum_height(target_area: &TargetArea) -> (i32, i64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/day14.rs:39:47
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut as_vec:Vec<i64>= map.iter().map(|(x,y)| *y).collect();
[INFO] [stdout]    |                                               ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `follow_trajectory` is never used
[INFO] [stdout]   --> src/day17.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn follow_trajectory(target_area: &TargetArea, init_velocity_x: &i64, init_velocity_y: &i64) -> (bool, i64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:63:41
[INFO] [stdout]    |
[INFO] [stdout] 63 |         if x.len() == 2 { numbers[1] = x.clone() }; // Number : 1
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 |         if x.len() == 4 { numbers[4] = x.clone() }; // Number : 4
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 65 |         if x.len() == 3 { numbers[7] = x.clone() }; // Number : 7
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:66:41
[INFO] [stdout]    |
[INFO] [stdout] 66 |         if x.len() == 7 { numbers[8] = x.clone() }; // Number : 8
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:71:25
[INFO] [stdout]    |
[INFO] [stdout] 71 |         { numbers[0] = x.clone() }; // Number : 0
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 |         { numbers[3] = x.clone() }; //Number: 3
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:75:25
[INFO] [stdout]    |
[INFO] [stdout] 75 |         { numbers[6] = x.clone() };//Number : 6
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |         { numbers[9] = x.clone() }; //Number : 9
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:85:25
[INFO] [stdout]    |
[INFO] [stdout] 85 |         { numbers[2] = x.clone() };     //Number : 2
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |         { numbers[5] = x.clone() };//Number : 5
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/day10.rs:79:39
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn new_branch<'a>(arr: &'a [char]) -> BranchResult {
[INFO] [stdout]    |                         --            ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn new_branch<'a>(arr: &'a [char]) -> BranchResult<'a> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/day12.rs:24:31
[INFO] [stdout]    |
[INFO] [stdout] 24 |         vertices.push((temp[0].clone(), temp[1].clone()));
[INFO] [stdout]    |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/day12.rs:24:48
[INFO] [stdout]    |
[INFO] [stdout] 24 |         vertices.push((temp[0].clone(), temp[1].clone()));
[INFO] [stdout]    |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cost`
[INFO] [stdout]   --> src/day15.rs:79:35
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let (_,((x_new,y_new),cost,former_new)) = fetch_in_table(&table_searched, &former).unwrap();
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&Rc<RefCell<Node>>` instead of dereferencing the inner type
[INFO] [stdout]   --> src/day12.rs:76:36
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let allow_second_time = if node.deref().deref().borrow().name.eq("start") || is_big_cavern(&node) || count < 1 {
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&Rc<RefCell<Node>>` instead of dereferencing the inner type
[INFO] [stdout]    --> src/day12.rs:118:26
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let x : String = node.deref().deref().borrow().name.clone();
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<std::cmp::Ordering, Infallible>
[INFO] [stdout]   --> src/day15.rs:61:63
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 table_not_searched.sort_by(|(_,a,_), (_,b,_)| Ordering::try_from(a.cmp(&b)).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] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/day15.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             mat_new.set_value(col, row, *val);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 189 |             let _ = mat_new.set_value(col, row, *val);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `advent_of_code_2021` (bin "advent_of_code_2021") due to 1 previous error; 209 warnings emitted
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let mut m_right : Vec<i32>= mat_1.vector.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut m_right_2 : Vec<i32>= m_right.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut m_right_3 : Vec<i32>= m_right_2.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let mut m_right_4 : Vec<i32>= m_right_3.iter().map(|x| calculate_cost(x)).collect();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/day15.rs:215:14
[INFO] [stdout]     |
[INFO] [stdout] 215 |         let (path, cost) = dijkstra(&matrix, (0,0), (matrix.get_width() as i32 - 1, matrix.get_height() as i32 -1));
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/day16.rs:318:13
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let id = bin_to_dec(&binary[start+3..start+6]);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]    --> src/day16.rs:320:14
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let (pos,sum, _) = decode(0, &binary);
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day1` is never used
[INFO] [stdout]  --> src/day1.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day1(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day2` is never used
[INFO] [stdout]  --> src/day2.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day2(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_and_print_part1` is never used
[INFO] [stdout]   --> src/day2.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn compute_and_print_part1(data: &String) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_and_print_part2` is never used
[INFO] [stdout]   --> src/day2.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn compute_and_print_part2(data: &String) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3` is never used
[INFO] [stdout]  --> src/day3.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) fn day3(){
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4` is never used
[INFO] [stdout]   --> src/day4.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn day4(){
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resize` is never used
[INFO] [stdout]   --> src/mat2d.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<T> Mat2d<T> where T:Clone{
[INFO] [stdout]    | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn resize(&mut self, width : usize, height : usize){
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day5` is never used
[INFO] [stdout]  --> src/day5.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn day5(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day5.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn part1(input: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day5.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn part2(input : &String)-> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day6` is never used
[INFO] [stdout]  --> src/day6.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day6(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day6.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn part_1(data: &String) -> u64 {
[INFO] [stdout]   |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day6.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn part_2(data: &String) -> u64 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day7` is never used
[INFO] [stdout]  --> src/day7.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day7(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day7.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn part1(data : &String) -> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day7.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn part2(data : &String) -> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day8` is never used
[INFO] [stdout]  --> src/day8.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day8(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day9` is never used
[INFO] [stdout]  --> src/day9.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn day9(){
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day9.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn part1(data: &String) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day9.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn part2(data : &String) -> i32{
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day10` is never used
[INFO] [stdout]  --> src/day10.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn day10(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result` is never used
[INFO] [stdout]   --> src/day10.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn result(data : &String) -> (i32, i64){
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day11` is never used
[INFO] [stdout]  --> src/day11.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn day11(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day12` is never used
[INFO] [stdout]  --> src/day12.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn day12(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day13` is never used
[INFO] [stdout]  --> src/day13.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn day13(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day13.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn part1(data :&str) -> i32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day13.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn part2(data :&str){
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day14` is never used
[INFO] [stdout]  --> src/day14.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn day14(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day14.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn part1(data: &String) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day14.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn part2(data: &String) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day15` is never used
[INFO] [stdout]  --> src/day15.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn day15(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day16` is never used
[INFO] [stdout]  --> src/day16.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) fn day16(){
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day17` is never used
[INFO] [stdout]  --> src/day17.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn day17(){
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:63:41
[INFO] [stdout]    |
[INFO] [stdout] 63 |         if x.len() == 2 { numbers[1] = x.clone() }; // Number : 1
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 |         if x.len() == 4 { numbers[4] = x.clone() }; // Number : 4
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:65:41
[INFO] [stdout]    |
[INFO] [stdout] 65 |         if x.len() == 3 { numbers[7] = x.clone() }; // Number : 7
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:66:41
[INFO] [stdout]    |
[INFO] [stdout] 66 |         if x.len() == 7 { numbers[8] = x.clone() }; // Number : 8
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:71:25
[INFO] [stdout]    |
[INFO] [stdout] 71 |         { numbers[0] = x.clone() }; // Number : 0
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 |         { numbers[3] = x.clone() }; //Number: 3
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:75:25
[INFO] [stdout]    |
[INFO] [stdout] 75 |         { numbers[6] = x.clone() };//Number : 6
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |         { numbers[9] = x.clone() }; //Number : 9
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `advent_of_code_2021` (bin "advent_of_code_2021" test) due to 1 previous error; 94 warnings emitted
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:85:25
[INFO] [stdout]    |
[INFO] [stdout] 85 |         { numbers[2] = x.clone() };     //Number : 2
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |         { numbers[5] = x.clone() };//Number : 5
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/day10.rs:79:39
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn new_branch<'a>(arr: &'a [char]) -> BranchResult {
[INFO] [stdout]    |                         --            ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn new_branch<'a>(arr: &'a [char]) -> BranchResult<'a> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/day12.rs:24:31
[INFO] [stdout]    |
[INFO] [stdout] 24 |         vertices.push((temp[0].clone(), temp[1].clone()));
[INFO] [stdout]    |                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/day12.rs:24:48
[INFO] [stdout]    |
[INFO] [stdout] 24 |         vertices.push((temp[0].clone(), temp[1].clone()));
[INFO] [stdout]    |                                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&Rc<RefCell<Node>>` instead of dereferencing the inner type
[INFO] [stdout]   --> src/day12.rs:76:36
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let allow_second_time = if node.deref().deref().borrow().name.eq("start") || is_big_cavern(&node) || count < 1 {
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&Rc<RefCell<Node>>` instead of dereferencing the inner type
[INFO] [stdout]    --> src/day12.rs:118:26
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let x : String = node.deref().deref().borrow().name.clone();
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<std::cmp::Ordering, Infallible>
[INFO] [stdout]   --> src/day15.rs:61:63
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 table_not_searched.sort_by(|(_,a,_), (_,b,_)| Ordering::try_from(a.cmp(&b)).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] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/day15.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             mat_new.set_value(col, row, *val);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 189 |             let _ = mat_new.set_value(col, row, *val);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7f87dac2b139cae595515e38bd37a96f3ba30a23938a28b0fb700adc59f20d64", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f87dac2b139cae595515e38bd37a96f3ba30a23938a28b0fb700adc59f20d64", kill_on_drop: false }`
[INFO] [stdout] 7f87dac2b139cae595515e38bd37a96f3ba30a23938a28b0fb700adc59f20d64
