[INFO] cloning repository https://github.com/th7nder/aoc-2023 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/th7nder/aoc-2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fth7nder%2Faoc-2023", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fth7nder%2Faoc-2023'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 948dd27d271c50e543d7bbabee4e2fa7f5b1b88a [INFO] checking th7nder/aoc-2023 against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fth7nder%2Faoc-2023" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/th7nder/aoc-2023 on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/th7nder/aoc-2023 [INFO] finished tweaking git repo https://github.com/th7nder/aoc-2023 [INFO] tweaked toml for git repo https://github.com/th7nder/aoc-2023 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/th7nder/aoc-2023 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4f9659f51ec5a2c7e7b38c02775770c009c4350a40f240fc01b2ff7f1dbfbea4 [INFO] running `Command { std: "docker" "start" "-a" "4f9659f51ec5a2c7e7b38c02775770c009c4350a40f240fc01b2ff7f1dbfbea4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4f9659f51ec5a2c7e7b38c02775770c009c4350a40f240fc01b2ff7f1dbfbea4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4f9659f51ec5a2c7e7b38c02775770c009c4350a40f240fc01b2ff7f1dbfbea4", kill_on_drop: false }` [INFO] [stdout] 4f9659f51ec5a2c7e7b38c02775770c009c4350a40f240fc01b2ff7f1dbfbea4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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" "-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 02381ec73f406b5323bbf03eb0301d700522e1aed57122f68a7b6facf563784c [INFO] running `Command { std: "docker" "start" "-a" "02381ec73f406b5323bbf03eb0301d700522e1aed57122f68a7b6facf563784c", kill_on_drop: false }` [INFO] [stderr] Checking aoc-2023 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/day12.rs:1:48 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fs::File, io, collections::{HashMap, HashSet}}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/day20.rs:206:29 [INFO] [stdout] | [INFO] [stdout] 206 | fn parse(filename: &str) -> (HashMap) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 206 - fn parse(filename: &str) -> (HashMap) { [INFO] [stdout] 206 + fn parse(filename: &str) -> HashMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/day12.rs:1:48 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fs::File, io, collections::{HashMap, HashSet}}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/day20.rs:206:29 [INFO] [stdout] | [INFO] [stdout] 206 | fn parse(filename: &str) -> (HashMap) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 206 - fn parse(filename: &str) -> (HashMap) { [INFO] [stdout] 206 + fn parse(filename: &str) -> HashMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/day20.rs:304:28 [INFO] [stdout] | [INFO] [stdout] 304 | use std::collections::{VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first` [INFO] [stdout] --> src/day1.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut first: Option = None; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_first` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `last` [INFO] [stdout] --> src/day1.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | let mut last: Option = None; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_last` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day1.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let mut first: Option = None; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day1.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut last: Option = None; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `game_id` [INFO] [stdout] --> src/day2.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | let game_id: u32 = x[1].parse().unwrap(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/day3.rs:234:31 [INFO] [stdout] | [INFO] [stdout] 234 | for (num, idx, x) in gears { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/day3.rs:234:36 [INFO] [stdout] | [INFO] [stdout] 234 | for (num, idx, x) in gears { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day3.rs:149:25 [INFO] [stdout] | [INFO] [stdout] 149 | let mut last_idx = col_idx - 1; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first` [INFO] [stdout] --> src/day1.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut first: Option = None; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_first` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `last` [INFO] [stdout] --> src/day1.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | let mut last: Option = None; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_last` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day1.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let mut first: Option = None; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day1.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let mut last: Option = None; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `game_id` [INFO] [stdout] --> src/day2.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | let game_id: u32 = x[1].parse().unwrap(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_game_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next` [INFO] [stdout] --> src/day10.rs:308:26 [INFO] [stdout] | [INFO] [stdout] 308 | let (next, nr, nc) = self.get_xy(r, c, dir); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `idx` [INFO] [stdout] --> src/day3.rs:234:31 [INFO] [stdout] | [INFO] [stdout] 234 | for (num, idx, x) in gears { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/day3.rs:234:36 [INFO] [stdout] | [INFO] [stdout] 234 | for (num, idx, x) in gears { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day3.rs:149:25 [INFO] [stdout] | [INFO] [stdout] 149 | let mut last_idx = col_idx - 1; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next` [INFO] [stdout] --> src/day10.rs:308:26 [INFO] [stdout] | [INFO] [stdout] 308 | let (next, nr, nc) = self.get_xy(r, c, dir); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `map` [INFO] [stdout] --> src/day10.rs:409:13 [INFO] [stdout] | [INFO] [stdout] 409 | let map = parse(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_map` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `Hand` is more private than the item `score` [INFO] [stdout] --> src/day7.rs:197:1 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn score(hands: &Vec) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `score` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `Hand` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/day7.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | struct Hand { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calibration_value` is never used [INFO] [stdout] --> src/day1.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn calibration_value(line: &str) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calibration_value_v2` is never used [INFO] [stdout] --> src/day1.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn calibration_value_v2(line: &str) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day1.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day1.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day2.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day2.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_schematic` is never used [INFO] [stdout] --> src/day3.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn read_schematic() -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_symbol` is never used [INFO] [stdout] --> src/day3.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn is_symbol(schematic: &Vec>, row_idx: usize, col_idx: usize, rr: i32, cc: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_number` is never used [INFO] [stdout] --> src/day3.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn is_number(schematic: &Vec>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day3.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Card` is never constructed [INFO] [stdout] --> src/day4.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct Card { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `matching_numbers` are never used [INFO] [stdout] --> src/day4.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 13 | impl Card { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 14 | fn new(id: u32, winning: HashSet, owned: Vec) -> Card { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn matching_numbers(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_cards` is never used [INFO] [stdout] --> src/day4.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn read_cards() -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day4.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day4.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Card` is never used [INFO] [stdout] --> src/day7.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | enum Card { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/day7.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 24 | impl Card { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 25 | fn new(from: char) -> Card { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hand` is never constructed [INFO] [stdout] --> src/day7.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | struct Hand { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse` and `new` are never used [INFO] [stdout] --> src/day7.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 51 | impl Hand { [INFO] [stdout] | --------- associated functions in this implementation [INFO] [stdout] 52 | fn parse(cards: &str, bid: u32) -> Hand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | fn new(cards: Vec, bid: u32) -> Hand { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `HandKind` is never used [INFO] [stdout] --> src/day7.rs:187:6 [INFO] [stdout] | [INFO] [stdout] 187 | enum HandKind { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `score` is never used [INFO] [stdout] --> src/day7.rs:197:8 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn score(hands: &Vec) -> u32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day7.rs:206:8 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Direction` is never used [INFO] [stdout] --> src/day10.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum Direction { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opposite` is never used [INFO] [stdout] --> src/day10.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl Direction { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 23 | fn opposite(self) -> Direction { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Tile` is never used [INFO] [stdout] --> src/day10.rs:39:6 [INFO] [stdout] | [INFO] [stdout] 39 | enum Tile { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `print`, `parse`, `directions`, and `by_directions` are never used [INFO] [stdout] --> src/day10.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 51 | impl Tile { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 52 | fn print(self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn parse(c: char) -> Tile { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn directions(self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | fn by_directions(dirs: &Vec) -> Tile { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse` is never used [INFO] [stdout] --> src/day10.rs:119:4 [INFO] [stdout] | [INFO] [stdout] 119 | fn parse() -> Map { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Map` is never constructed [INFO] [stdout] --> src/day10.rs:138:8 [INFO] [stdout] | [INFO] [stdout] 138 | struct Map { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/day10.rs:146:8 [INFO] [stdout] | [INFO] [stdout] 145 | impl Map { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 146 | fn new(tiles: Vec>) -> Map { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | fn determine_start(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | fn get(&self, r: usize, c: usize, dir: Direction) -> Tile { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | fn get_xy(&self, r: usize, c: usize, dir: Direction) -> (Tile, usize, usize) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | fn traverse(&mut self, start: (usize, usize)) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | fn cast(&self, (r, c): (usize, usize), visited: &HashSet<(usize, usize)>) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 372 | fn print(&self, visited: &HashSet<(usize, usize)>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day10.rs:398:8 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SpringStatus` is never used [INFO] [stdout] --> src/day12.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | enum SpringStatus { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `from` and `print` are never used [INFO] [stdout] --> src/day12.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl SpringStatus { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 15 | pub fn from(c: char) -> SpringStatus { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn print(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_config` is never used [INFO] [stdout] --> src/day12.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn print_config(configuration: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `valid` is never used [INFO] [stdout] --> src/day12.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn valid(configuration: &Vec, damaged_segments: Vec) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `arrange` is never used [INFO] [stdout] --> src/day12.rs:82:4 [INFO] [stdout] | [INFO] [stdout] 82 | fn arrange( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse` is never used [INFO] [stdout] --> src/day12.rs:162:4 [INFO] [stdout] | [INFO] [stdout] 162 | fn parse(s: &str) -> (Vec, Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day12.rs:180:8 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Workflow` is never constructed [INFO] [stdout] --> src/day19.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct Workflow { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `process` and `parse` are never used [INFO] [stdout] --> src/day19.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl Workflow { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 11 | fn process(&self, part: &Part) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn parse(s: &str) -> Workflow { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rule` is never constructed [INFO] [stdout] --> src/day19.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | struct Rule { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `invert`, `parse`, and `accept` are never used [INFO] [stdout] --> src/day19.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 48 | impl Rule { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 49 | fn invert(&self) -> Rule { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn parse(s: &str) -> Rule { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn accept(&self, part: &Part) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RuleKind` is never used [INFO] [stdout] --> src/day19.rs:125:6 [INFO] [stdout] | [INFO] [stdout] 125 | enum RuleKind { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Segment` is never used [INFO] [stdout] --> src/day19.rs:133:6 [INFO] [stdout] | [INFO] [stdout] 133 | enum Segment { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Part` is never constructed [INFO] [stdout] --> src/day19.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | struct Part { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `parse` and `rating` are never used [INFO] [stdout] --> src/day19.rs:149:8 [INFO] [stdout] | [INFO] [stdout] 148 | impl Part { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 149 | fn parse(s: &str) -> Part { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | fn rating(&self) -> i32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_part` is never used [INFO] [stdout] --> src/day19.rs:175:4 [INFO] [stdout] | [INFO] [stdout] 175 | fn process_part(part: &mut Part, workflows: &HashMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_parts` is never used [INFO] [stdout] --> src/day19.rs:198:4 [INFO] [stdout] | [INFO] [stdout] 198 | fn process_parts(parts: &mut Vec, workflows: &HashMap) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse` is never used [INFO] [stdout] --> src/day19.rs:209:4 [INFO] [stdout] | [INFO] [stdout] 209 | fn parse(filename: &str) -> (HashMap, Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day19.rs:236:8 [INFO] [stdout] | [INFO] [stdout] 236 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `determine_ranges` is never used [INFO] [stdout] --> src/day19.rs:243:4 [INFO] [stdout] | [INFO] [stdout] 243 | fn determine_ranges(constraints: &Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `traverse` is never used [INFO] [stdout] --> src/day19.rs:343:4 [INFO] [stdout] | [INFO] [stdout] 343 | fn traverse(current_workflow: &str, workflows: &HashMap, constraints: &mut Vec, path: &mut Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day19.rs:383:8 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_signals` is never used [INFO] [stdout] --> src/day20.rs:139:4 [INFO] [stdout] | [INFO] [stdout] 139 | fn print_signals(signals: &Vec<(String, String, Signal)>) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_signal` is never used [INFO] [stdout] --> src/day20.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn print_signal((from, target, signal): &(String, String, Signal)) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day20.rs:224:8 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 67 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/day20.rs:331:13 [INFO] [stdout] | [INFO] [stdout] 331 | let mut modules = vec![ [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `day7::Hand` is more private than the item `day7::score` [INFO] [stdout] --> src/day7.rs:197:1 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn score(hands: &Vec) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `day7::score` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `day7::Hand` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/day7.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | struct Hand { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calibration_value` is never used [INFO] [stdout] --> src/day1.rs:7:4 [INFO] [stdout] | [INFO] [stdout] 7 | fn calibration_value(line: &str) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calibration_value_v2` is never used [INFO] [stdout] --> src/day1.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn calibration_value_v2(line: &str) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day1.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day1.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day2.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day2.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_schematic` is never used [INFO] [stdout] --> src/day3.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn read_schematic() -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_symbol` is never used [INFO] [stdout] --> src/day3.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn is_symbol(schematic: &Vec>, row_idx: usize, col_idx: usize, rr: i32, cc: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_number` is never used [INFO] [stdout] --> src/day3.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn is_number(schematic: &Vec>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day3.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Card` is never constructed [INFO] [stdout] --> src/day4.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct Card { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `matching_numbers` are never used [INFO] [stdout] --> src/day4.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 13 | impl Card { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 14 | fn new(id: u32, winning: HashSet, owned: Vec) -> Card { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn matching_numbers(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_cards` is never used [INFO] [stdout] --> src/day4.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn read_cards() -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day4.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day4.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day7.rs:206:8 [INFO] [stdout] | [INFO] [stdout] 206 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opposite` is never used [INFO] [stdout] --> src/day10.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl Direction { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] 23 | fn opposite(self) -> Direction { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/day10.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 51 | impl Tile { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 52 | fn print(self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/day10.rs:372:8 [INFO] [stdout] | [INFO] [stdout] 145 | impl Map { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 372 | fn print(&self, visited: &HashSet<(usize, usize)>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day10.rs:398:8 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/day12.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl SpringStatus { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn print(&self) -> char { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_config` is never used [INFO] [stdout] --> src/day12.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn print_config(configuration: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day12.rs:180:8 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `invert` is never used [INFO] [stdout] --> src/day19.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 48 | impl Rule { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 49 | fn invert(&self) -> Rule { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day19.rs:236:8 [INFO] [stdout] | [INFO] [stdout] 236 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `determine_ranges` is never used [INFO] [stdout] --> src/day19.rs:243:4 [INFO] [stdout] | [INFO] [stdout] 243 | fn determine_ranges(constraints: &Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `traverse` is never used [INFO] [stdout] --> src/day19.rs:343:4 [INFO] [stdout] | [INFO] [stdout] 343 | fn traverse(current_workflow: &str, workflows: &HashMap, constraints: &mut Vec, path: &mut Vec) -> i64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part2` is never used [INFO] [stdout] --> src/day19.rs:383:8 [INFO] [stdout] | [INFO] [stdout] 383 | pub fn part2() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_signals` is never used [INFO] [stdout] --> src/day20.rs:139:4 [INFO] [stdout] | [INFO] [stdout] 139 | fn print_signals(signals: &Vec<(String, String, Signal)>) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_signal` is never used [INFO] [stdout] --> src/day20.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn print_signal((from, target, signal): &(String, String, Signal)) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `part1` is never used [INFO] [stdout] --> src/day20.rs:224:8 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn part1() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 46 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.25s [INFO] running `Command { std: "docker" "inspect" "02381ec73f406b5323bbf03eb0301d700522e1aed57122f68a7b6facf563784c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "02381ec73f406b5323bbf03eb0301d700522e1aed57122f68a7b6facf563784c", kill_on_drop: false }` [INFO] [stdout] 02381ec73f406b5323bbf03eb0301d700522e1aed57122f68a7b6facf563784c