[INFO] cloning repository https://github.com/kwrl/aoc_2022
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kwrl/aoc_2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkwrl%2Faoc_2022", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkwrl%2Faoc_2022'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 40f78ac09306187ddc65b6fb430b5bd7981bf458
[INFO] checking kwrl/aoc_2022 against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkwrl%2Faoc_2022" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kwrl/aoc_2022
[INFO] finished tweaking git repo https://github.com/kwrl/aoc_2022
[INFO] tweaked toml for git repo https://github.com/kwrl/aoc_2022 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kwrl/aoc_2022 on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kwrl/aoc_2022 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 521dd20ac724178e470cb66563286d467c03bdc071a4497e6fdd3a7e8d9b72cc
[INFO] running `Command { std: "docker" "start" "-a" "521dd20ac724178e470cb66563286d467c03bdc071a4497e6fdd3a7e8d9b72cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "521dd20ac724178e470cb66563286d467c03bdc071a4497e6fdd3a7e8d9b72cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "521dd20ac724178e470cb66563286d467c03bdc071a4497e6fdd3a7e8d9b72cc", kill_on_drop: false }`
[INFO] [stdout] 521dd20ac724178e470cb66563286d467c03bdc071a4497e6fdd3a7e8d9b72cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d287f64d8862d84fe5f6b0d3f737ca5b6c75e74e3898175d32a3a8183cde6c59
[INFO] running `Command { std: "docker" "start" "-a" "d287f64d8862d84fe5f6b0d3f737ca5b6c75e74e3898175d32a3a8183cde6c59", kill_on_drop: false }`
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking aoc_2022 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day5.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         for i in 0..cargo_move.quantity {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day9.rs:149:49
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let mut rope: Vec<Vec<Vec2>> = (0..10).map(|i| vec![Vec2 { x: 0, y: 0 }]).collect();
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sums` is never used
[INFO] [stdout]  --> src/day1.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn sums(lines: &Vec<String>) -> Vec<u32> {
[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 `part1` is never used
[INFO] [stdout]   --> src/day1.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn part1(filename: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day1.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn part2(filename: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ComputerState` is never constructed
[INFO] [stdout]  --> src/day10.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct ComputerState {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Computer` is never constructed
[INFO] [stdout]  --> src/day10.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Computer {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `signal_strength_at` is never used
[INFO] [stdout]   --> src/day10.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Computer {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 14 |     fn signal_strength_at(&self, cycle: usize) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Instruction` is never used
[INFO] [stdout]   --> src/day10.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | trait Instruction {
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AddX` is never constructed
[INFO] [stdout]   --> src/day10.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct AddX {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Noop` is never constructed
[INFO] [stdout]   --> src/day10.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct Noop {}
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_instruction` is never used
[INFO] [stdout]   --> src/day10.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn parse_instruction(s: &str) -> Box<dyn Instruction> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CRTScreen` is never constructed
[INFO] [stdout]   --> src/day10.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | struct CRTScreen {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_string`, `draw_pixel`, and `draw` are never used
[INFO] [stdout]   --> src/day10.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl CRTScreen {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 72 |     fn to_string(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn draw_pixel(&mut self, x: u32, y: u32) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn draw(&mut self, computer: &Computer) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]    --> src/day10.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn part1(filename: &str) -> i32 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]    --> src/day10.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn part2(filename: &str) -> String {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Shape` is never used
[INFO] [stdout]  --> src/day2.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum Shape {
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `score`, `loses_to`, and `wins_over` are never used
[INFO] [stdout]   --> src/day2.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Shape {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 13 |     fn score(&self) -> u32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn loses_to(&self) -> Shape {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn wins_over(&self) -> Shape {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GameResult` is never used
[INFO] [stdout]   --> src/day2.rs:39:6
[INFO] [stdout]    |
[INFO] [stdout] 39 | enum GameResult {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part1Instruction` is never constructed
[INFO] [stdout]   --> src/day2.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct Part1Instruction {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `score` and `outcome_score` are never used
[INFO] [stdout]   --> src/day2.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Part1Instruction {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 51 |     fn score(&self) -> u32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn outcome_score(&self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]    --> src/day2.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn part1(filename: &str) -> u32 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part2Instruction` is never constructed
[INFO] [stdout]    --> src/day2.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | struct Part2Instruction {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `score` is never used
[INFO] [stdout]    --> src/day2.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl Part2Instruction {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 148 |     fn score(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]    --> src/day2.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn part2(filename: &str) -> u32 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rucksack` is never constructed
[INFO] [stdout]  --> src/day3.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Rucksack {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `first_compartment`, `second_compartment`, and `items_in_both_compartments` are never used
[INFO] [stdout]   --> src/day3.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Rucksack {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 10 |     fn first_compartment(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     fn second_compartment(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn items_in_both_compartments(&self) -> HashSet<char> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RucksackParseError` is never constructed
[INFO] [stdout]   --> src/day3.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct RucksackParseError {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `priority` is never used
[INFO] [stdout]   --> src/day3.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn priority(value: char) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day3.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn part1(filename: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersection` is never used
[INFO] [stdout]   --> src/day3.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn intersection(a: String, b: String, c: String) -> HashSet<char> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day3.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn part2(filename: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Range` is never constructed
[INFO] [stdout]  --> src/day4.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Range {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contains` and `overlaps` are never used
[INFO] [stdout]   --> src/day4.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Range {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 12 |     fn contains(&self, other: &Range) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn overlaps(&self, other: &Range) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InputLine` is never constructed
[INFO] [stdout]   --> src/day4.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct InputLine {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InputLineParseError` is never constructed
[INFO] [stdout]   --> src/day4.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct InputLineParseError {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RangeParseError` is never constructed
[INFO] [stdout]   --> src/day4.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct RangeParseError {}
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day4.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn part1(filename: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day4.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn part2(filename: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CargoBay` is never constructed
[INFO] [stdout]  --> src/day5.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct CargoBay {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `move_item`, `handle_move`, `handle_move_part2`, and `to_str` are never used
[INFO] [stdout]   --> src/day5.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl CargoBay {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 10 |     pub fn move_item(&mut self, from: usize, to: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn handle_move(&mut self, cargo_move: &CargoMove) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn handle_move_part2(&mut self, cargo_move: &CargoMove) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn to_str(&self) -> String {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CargoBayParseError` is never constructed
[INFO] [stdout]   --> src/day5.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct CargoBayParseError;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CargoMove` is never constructed
[INFO] [stdout]   --> src/day5.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct CargoMove {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CargoMoveParseError` is never constructed
[INFO] [stdout]   --> src/day5.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | struct CargoMoveParseError;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]    --> src/day5.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn part1(filename: &str) -> String {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]    --> src/day5.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn part2(filename: &str) -> String {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_start_of_packet_marker` is never used
[INFO] [stdout]  --> src/day6.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn find_start_of_packet_marker(signal: &str) -> Option<usize> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_start_of_message_marker` is never used
[INFO] [stdout]   --> src/day6.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn find_start_of_message_marker(signal: &str) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]   --> src/day6.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn part1(signal: &str) -> usize {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]   --> src/day6.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn part2(signal: &str) -> usize {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec2` is never constructed
[INFO] [stdout]  --> src/day9.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Vec2 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Knot` is never constructed
[INFO] [stdout]   --> src/day9.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Knot<'a> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `tail` and `step` are never used
[INFO] [stdout]   --> src/day9.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> Knot<'a> {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 16 |     fn tail(&mut self) -> &Knot<'a> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn step(&mut self, step: &Vec2) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UP` is never used
[INFO] [stdout]   --> src/day9.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | static UP: Vec2 = Vec2 { x: 0, y: -1 };
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RIGHT` is never used
[INFO] [stdout]   --> src/day9.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | static RIGHT: Vec2 = Vec2 { x: 1, y: 0 };
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DOWN` is never used
[INFO] [stdout]   --> src/day9.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | static DOWN: Vec2 = Vec2 { x: 0, y: 1 };
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LEFT` is never used
[INFO] [stdout]   --> src/day9.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | static LEFT: Vec2 = Vec2 { x: -1, y: 0 };
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `plus`, `minus`, `scale`, and `direction` are never used
[INFO] [stdout]   --> src/day9.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Vec2 {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 47 |     fn plus(&self, other: &Vec2) -> Vec2 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn minus(&self, other: &Vec2) -> Vec2 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn scale(&self, scale: i32) -> Vec2 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn direction(&self) -> Vec2 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_steps` is never used
[INFO] [stdout]   --> src/day9.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn parse_steps(str: &str) -> Vec<Vec2> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_position` is never used
[INFO] [stdout]    --> src/day9.rs:107:4
[INFO] [stdout]     |
[INFO] [stdout] 107 | fn next_position(head: &Vec2, tail: &Vec2) -> Vec2 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]    --> src/day9.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn part1(filename: &str) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]    --> src/day9.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn part2(filename: &str) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day5.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         for i in 0..cargo_move.quantity {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day9.rs:149:49
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let mut rope: Vec<Vec<Vec2>> = (0..10).map(|i| vec![Vec2 { x: 0, y: 0 }]).collect();
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Knot` is never constructed
[INFO] [stdout]   --> src/day9.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Knot<'a> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.93s
[INFO] [stdout] warning: methods `tail` and `step` are never used
[INFO] [stdout]   --> src/day9.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> Knot<'a> {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 16 |     fn tail(&mut self) -> &Knot<'a> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn step(&mut self, step: &Vec2) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scale` is never used
[INFO] [stdout]   --> src/day9.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl Vec2 {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn scale(&self, scale: i32) -> Vec2 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d287f64d8862d84fe5f6b0d3f737ca5b6c75e74e3898175d32a3a8183cde6c59", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d287f64d8862d84fe5f6b0d3f737ca5b6c75e74e3898175d32a3a8183cde6c59", kill_on_drop: false }`
[INFO] [stdout] d287f64d8862d84fe5f6b0d3f737ca5b6c75e74e3898175d32a3a8183cde6c59
