[INFO] cloning repository https://github.com/iLePix/ml-digits-recognizer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iLePix/ml-digits-recognizer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FiLePix%2Fml-digits-recognizer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FiLePix%2Fml-digits-recognizer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8bc52d68f2403df4df980fb14af562f5b68189e9
[INFO] checking iLePix/ml-digits-recognizer against try#438eb4c1a1c3841523d7f672601e8adbe04cff28 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FiLePix%2Fml-digits-recognizer" "/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/iLePix/ml-digits-recognizer
[INFO] finished tweaking git repo https://github.com/iLePix/ml-digits-recognizer
[INFO] tweaked toml for git repo https://github.com/iLePix/ml-digits-recognizer written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iLePix/ml-digits-recognizer on toolchain 438eb4c1a1c3841523d7f672601e8adbe04cff28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iLePix/ml-digits-recognizer 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" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/LinusDikomey/vecm`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking iLePix/ml-digits-recognizer against try#438eb4c1a1c3841523d7f672601e8adbe04cff28 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FiLePix%2Fml-digits-recognizer" "/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/iLePix/ml-digits-recognizer
[INFO] finished tweaking git repo https://github.com/iLePix/ml-digits-recognizer
[INFO] tweaked toml for git repo https://github.com/iLePix/ml-digits-recognizer written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iLePix/ml-digits-recognizer on toolchain 438eb4c1a1c3841523d7f672601e8adbe04cff28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iLePix/ml-digits-recognizer 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" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4cff5d89a2d37a2911c126d6c9bd4b76341a7072b3f81ea6a16abc3abaaeec67
[INFO] running `Command { std: "docker" "start" "-a" "4cff5d89a2d37a2911c126d6c9bd4b76341a7072b3f81ea6a16abc3abaaeec67", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4cff5d89a2d37a2911c126d6c9bd4b76341a7072b3f81ea6a16abc3abaaeec67", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4cff5d89a2d37a2911c126d6c9bd4b76341a7072b3f81ea6a16abc3abaaeec67", kill_on_drop: false }`
[INFO] [stdout] 4cff5d89a2d37a2911c126d6c9bd4b76341a7072b3f81ea6a16abc3abaaeec67
[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" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+438eb4c1a1c3841523d7f672601e8adbe04cff28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4b11c0276e97ae69f3cd375b7a05b86e6241b832be0ce2a39610567e5a19f0f7
[INFO] running `Command { std: "docker" "start" "-a" "4b11c0276e97ae69f3cd375b7a05b86e6241b832be0ce2a39610567e5a19f0f7", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.142
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling sdl2 v0.35.2
[INFO] [stderr]     Checking num-traits v0.2.15
[INFO] [stderr]    Compiling sdl2-sys v0.35.2
[INFO] [stderr]     Checking vecm v0.1.0 (https://github.com/LinusDikomey/vecm#6eab79d8)
[INFO] [stderr]     Checking getrandom v0.2.9
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ml-digits-recognizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::array`
[INFO] [stdout]  --> src/net.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::array;
[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 imports: `IMAGE_HEIGHT`, `IMAGE_WIDTH`, and `self`
[INFO] [stdout]  --> src/net.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{IMAGE_HEIGHT, IMAGE_WIDTH, activation::{Activation, self}};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^^^^^^^                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pixels::Color`, `rect::Rect`, and `render::Canvas`
[INFO] [stdout]   --> src/main.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 | use sdl2::{image::InitFlag, render::Canvas, pixels::Color, rect::Rect};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::array`
[INFO] [stdout]  --> src/net.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::array;
[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 imports: `IMAGE_HEIGHT`, `IMAGE_WIDTH`, and `self`
[INFO] [stdout]  --> src/net.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{IMAGE_HEIGHT, IMAGE_WIDTH, activation::{Activation, self}};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^^^^^^^                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pixels::Color`, `rect::Rect`, and `render::Canvas`
[INFO] [stdout]   --> src/main.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 | use sdl2::{image::InitFlag, render::Canvas, pixels::Color, rect::Rect};
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `weighted_output` is assigned to, but never used
[INFO] [stdout]   --> src/net.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |             let mut weighted_output = self.biases[out_node];
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_weighted_output` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `weighted_output` is never read
[INFO] [stdout]   --> src/net.rs:85:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |                weighted_output += self.get_weight(in_node, out_node) * inputs[in_node];  
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut rng = rand::thread_rng();
[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/main.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut window_size = Vec2u::new(560, 660);
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `weighted_output` is assigned to, but never used
[INFO] [stdout]   --> src/net.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |             let mut weighted_output = self.biases[out_node];
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_weighted_output` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `weighted_output` is never read
[INFO] [stdout]   --> src/net.rs:85:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |                weighted_output += self.get_weight(in_node, out_node) * inputs[in_node];  
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font_path`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let font_path = &Path::new("../../res/times-new-roman.ttf");
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `image_context`
[INFO] [stdout]   --> src/main.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let image_context = sdl2::image::init(InitFlag::PNG | InitFlag::JPG)?;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_image_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `height` is never read
[INFO] [stdout]   --> src/main.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Images {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub height: 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: fields `mouse_delta` and `mouse_wheel_delta` are never read
[INFO] [stdout]   --> src/input.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct InputHandler {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     mouse_delta: Vec2i,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 14 |     mouse_wheel_delta: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `press_controls` is never used
[INFO] [stdout]   --> src/input.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |           impl Control {
[INFO] [stdout]    |           ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |               pub fn press_controls() -> Vec<Control> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 | / key_mappings! {
[INFO] [stdout] 59 | |     Up => W,
[INFO] [stdout] 60 | |     Down => S,
[INFO] [stdout] 61 | |     Left => A,
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |     ZoomOut => Minus
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `key_mappings` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_mouse_delta`, `add_mouse_wheel_delta`, `mouse_delta`, `mouse_wheel_delta`, and `frame_reset` are never used
[INFO] [stdout]    --> src/input.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl InputHandler {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn add_mouse_delta(&mut self, delta: Vec2i) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn add_mouse_wheel_delta(&mut self, delta: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn mouse_delta(&self) -> Vec2i { self.mouse_delta }
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]  96 |     pub fn mouse_wheel_delta(&self) -> i32 { self.mouse_wheel_delta }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn frame_reset(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Net` is never constructed
[INFO] [stdout]  --> src/net.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Net {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `think` are never used
[INFO] [stdout]   --> src/net.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Net {
[INFO] [stdout]    | -------- associated functions in this implementation
[INFO] [stdout] 14 |     pub fn new(layer_sizes: &[usize], activation: Activation) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn think(inputs: &[f32]) -> &[f32] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Axon` is never constructed
[INFO] [stdout]   --> src/net.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Axon {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `zero`, `new`, and `from_rng` are never used
[INFO] [stdout]   --> src/net.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Axon {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 36 |     pub fn zero() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn new(weight: f32, bias: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn from_rng(rng: &mut ThreadRng) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Layer` is never constructed
[INFO] [stdout]   --> src/net.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Layer {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_weight`, and `calculate_outputs` are never used
[INFO] [stdout]   --> src/net.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl Layer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 60 |     pub fn new(in_nodes_num: usize, out_nodes_num: usize, rng: &mut ThreadRng) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn get_weight(&self, in_node: usize, out_node: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn calculate_outputs(&self, inputs: &[f32]) -> Vec<f32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Activation` is never used
[INFO] [stdout]  --> src/activation.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Activation {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `activate` and `derivitave` are never used
[INFO] [stdout]   --> src/activation.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Activation {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 13 |     pub fn activate(self, inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn derivitave(self, inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid_activate` is never used
[INFO] [stdout]   --> src/activation.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn sigmoid_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn sigmoid_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tanh_activate` is never used
[INFO] [stdout]   --> src/activation.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn tanh_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tanh_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn tanh_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relu_activate` is never used
[INFO] [stdout]   --> src/activation.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn relu_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relu_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn relu_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `silu_activate` is never used
[INFO] [stdout]   --> src/activation.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn silu_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `silu_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn silu_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_activate` is never used
[INFO] [stdout]   --> src/activation.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn softmax_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn softmax_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Cost` is never used
[INFO] [stdout]  --> src/cost.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Cost {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cost` and `cost_derivitave` are never used
[INFO] [stdout]   --> src/cost.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Cost {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 11 |     pub fn cost(self, predicted_outputs: &[f32], expected_outputs: &[f32]) -> f32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn cost_derivitave(self, predicted_output: f32, expected_output: f32) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut rng = rand::thread_rng();
[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/main.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut window_size = Vec2u::new(560, 660);
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> src/main.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font_path`
[INFO] [stdout]   --> src/main.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let font_path = &Path::new("../../res/times-new-roman.ttf");
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `image_context`
[INFO] [stdout]   --> src/main.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let image_context = sdl2::image::init(InitFlag::PNG | InitFlag::JPG)?;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_image_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `height` is never read
[INFO] [stdout]   --> src/main.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Images {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub height: 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: fields `mouse_delta` and `mouse_wheel_delta` are never read
[INFO] [stdout]   --> src/input.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct InputHandler {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     mouse_delta: Vec2i,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 14 |     mouse_wheel_delta: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `press_controls` is never used
[INFO] [stdout]   --> src/input.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |           impl Control {
[INFO] [stdout]    |           ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |               pub fn press_controls() -> Vec<Control> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 | / key_mappings! {
[INFO] [stdout] 59 | |     Up => W,
[INFO] [stdout] 60 | |     Down => S,
[INFO] [stdout] 61 | |     Left => A,
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |     ZoomOut => Minus
[INFO] [stdout] 69 | | }
[INFO] [stdout]    | |_- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `key_mappings` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_mouse_delta`, `add_mouse_wheel_delta`, `mouse_delta`, `mouse_wheel_delta`, and `frame_reset` are never used
[INFO] [stdout]    --> src/input.rs:87:12
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl InputHandler {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn add_mouse_delta(&mut self, delta: Vec2i) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn add_mouse_wheel_delta(&mut self, delta: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn mouse_delta(&self) -> Vec2i { self.mouse_delta }
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]  96 |     pub fn mouse_wheel_delta(&self) -> i32 { self.mouse_wheel_delta }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn frame_reset(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Net` is never constructed
[INFO] [stdout]  --> src/net.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Net {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `think` are never used
[INFO] [stdout]   --> src/net.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Net {
[INFO] [stdout]    | -------- associated functions in this implementation
[INFO] [stdout] 14 |     pub fn new(layer_sizes: &[usize], activation: Activation) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn think(inputs: &[f32]) -> &[f32] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Axon` is never constructed
[INFO] [stdout]   --> src/net.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Axon {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `zero`, `new`, and `from_rng` are never used
[INFO] [stdout]   --> src/net.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Axon {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 36 |     pub fn zero() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn new(weight: f32, bias: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn from_rng(rng: &mut ThreadRng) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Layer` is never constructed
[INFO] [stdout]   --> src/net.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Layer {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_weight`, and `calculate_outputs` are never used
[INFO] [stdout]   --> src/net.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl Layer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 60 |     pub fn new(in_nodes_num: usize, out_nodes_num: usize, rng: &mut ThreadRng) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn get_weight(&self, in_node: usize, out_node: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn calculate_outputs(&self, inputs: &[f32]) -> Vec<f32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Activation` is never used
[INFO] [stdout]  --> src/activation.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Activation {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `activate` and `derivitave` are never used
[INFO] [stdout]   --> src/activation.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Activation {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 13 |     pub fn activate(self, inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn derivitave(self, inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid_activate` is never used
[INFO] [stdout]   --> src/activation.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn sigmoid_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sigmoid_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn sigmoid_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tanh_activate` is never used
[INFO] [stdout]   --> src/activation.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn tanh_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tanh_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn tanh_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relu_activate` is never used
[INFO] [stdout]   --> src/activation.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn relu_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relu_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn relu_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `silu_activate` is never used
[INFO] [stdout]   --> src/activation.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn silu_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `silu_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn silu_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_activate` is never used
[INFO] [stdout]   --> src/activation.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn softmax_activate(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `softmax_derivitave` is never used
[INFO] [stdout]   --> src/activation.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn softmax_derivitave(inputs: &[f32], index: usize) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Cost` is never used
[INFO] [stdout]  --> src/cost.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Cost {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cost` and `cost_derivitave` are never used
[INFO] [stdout]   --> src/cost.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Cost {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 11 |     pub fn cost(self, predicted_outputs: &[f32], expected_outputs: &[f32]) -> f32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn cost_derivitave(self, predicted_output: f32, expected_output: f32) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.90s
[INFO] running `Command { std: "docker" "inspect" "4b11c0276e97ae69f3cd375b7a05b86e6241b832be0ce2a39610567e5a19f0f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b11c0276e97ae69f3cd375b7a05b86e6241b832be0ce2a39610567e5a19f0f7", kill_on_drop: false }`
[INFO] [stdout] 4b11c0276e97ae69f3cd375b7a05b86e6241b832be0ce2a39610567e5a19f0f7
