[INFO] cloning repository https://github.com/alex-chinchaladze/locomotion-neat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alex-chinchaladze/locomotion-neat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falex-chinchaladze%2Flocomotion-neat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falex-chinchaladze%2Flocomotion-neat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] db2560c117c10c82137fe58c922bc32790c05e48
[INFO] checking alex-chinchaladze/locomotion-neat against c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40 for pr-160391-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falex-chinchaladze%2Flocomotion-neat" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/alex-chinchaladze/locomotion-neat
[INFO] finished tweaking git repo https://github.com/alex-chinchaladze/locomotion-neat
[INFO] tweaked toml for git repo https://github.com/alex-chinchaladze/locomotion-neat written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/alex-chinchaladze/locomotion-neat on toolchain c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/alex-chinchaladze/locomotion-neat 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" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "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-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1
[INFO] running `Command { std: "docker" "start" "93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1" "/opt/rustwide/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1" "/opt/rustwide/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking chacha20 v0.10.2
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]     Checking rand_distr v0.6.0
[INFO] [stderr]     Checking neuro v0.1.0 (/opt/rustwide/workdir/crates/engine)
[INFO] [stdout] warning: constant `NUM_LEGS` is never used
[INFO] [stdout]  --> crates/engine/src/controller.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const NUM_LEGS: usize = 4;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_INPUTS` is never used
[INFO] [stdout]  --> crates/engine/src/controller.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const NUM_INPUTS: usize = 2 + NUM_LEGS * 3;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_OUTPUTS` is never used
[INFO] [stdout]  --> crates/engine/src/controller.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const NUM_OUTPUTS: usize = NUM_LEGS * 2;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LegInput` is never constructed
[INFO] [stdout]  --> crates/engine/src/controller.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LegInput {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inputs` is never constructed
[INFO] [stdout]   --> crates/engine/src/controller.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Inputs {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_array` is never used
[INFO] [stdout]   --> crates/engine/src/controller.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Inputs {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 18 |     #[must_use]
[INFO] [stdout] 19 |     pub fn into_array(self) -> [f32; NUM_INPUTS] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Outputs` is never constructed
[INFO] [stdout]   --> crates/engine/src/controller.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Outputs {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_array` is never used
[INFO] [stdout]   --> crates/engine/src/controller.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl Outputs {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 46 |     pub fn from_array(outputs: [f32; NUM_OUTPUTS]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ctrnn` is never constructed
[INFO] [stdout]  --> crates/engine/src/ctrnn.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Ctrnn {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_genome`, `inputs`, `outputs`, and `step` are never used
[INFO] [stdout]   --> crates/engine/src/ctrnn.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Ctrnn {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn from_genome(genome: &Genome) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn inputs(&mut self, inputs: Inputs) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn outputs(&self) -> Outputs {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn step(&mut self, dt: f32) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MutationConfig` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MutationConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeKind` is never used
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum NodeKind {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeGene` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct NodeGene {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkGene` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct LinkGene {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Genome` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct Genome {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Genome {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_link`, `add_node`, `random_node_mut`, and `random_link_mut` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:74:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  74 |     fn add_link(&mut self, id: LinkId) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn add_node(&mut self, id: NodeId) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn random_node_mut(&mut self, rng: &mut dyn Rng) -> &mut NodeGene {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn random_link_mut(&mut self, rng: &mut dyn Rng) -> &mut LinkGene {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mutate_bias`, `mutate_tau`, `mutate_weight`, and `mutate_toggle_link` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 107 |     fn mutate_bias(&mut self, rng: &mut dyn Rng, delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn mutate_tau(&mut self, rng: &mut dyn Rng, log_delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn mutate_weight(&mut self, rng: &mut dyn Rng, delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn mutate_toggle_link(&mut self, rng: &mut dyn Rng) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mutate_connect` and `mutate_split` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 127 |     fn mutate_connect(&mut self, rng: &mut dyn Rng, registry: &mut InnovationRegistry) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn mutate_split(&mut self, rng: &mut dyn Rng, registry: &mut InnovationRegistry) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance`, `crossover`, and `mutate` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 165 |     // distance from self to a representative of a species
[INFO] [stdout] 166 |     pub fn distance(&self, other: &Self, c_excess: f32, c_disjoint: f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn crossover(&self, other: &Self, rng: &mut dyn Rng) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn mutate(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NodeId` is never used
[INFO] [stdout]  --> crates/engine/src/neat/innovation.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type NodeId = usize;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LinkId` is never used
[INFO] [stdout]  --> crates/engine/src/neat/innovation.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type LinkId = (NodeId, NodeId);
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InnovationRegistry` is never constructed
[INFO] [stdout]  --> crates/engine/src/neat/innovation.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct InnovationRegistry {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next_node`, `link`, and `split` are never used
[INFO] [stdout]   --> crates/engine/src/neat/innovation.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl InnovationRegistry {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn next_node(&mut self) -> NodeId {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn link(&mut self, from: NodeId, to: NodeId) -> LinkId {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn split(&mut self, link: LinkId) -> (LinkId, LinkId, NodeId) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Population` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Population {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IndividualId` is never used
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type IndividualId = usize;
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SpeciesId` is never used
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type SpeciesId = usize;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Individual` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Individual {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Species` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Species {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_species`, `shared_fitness`, and `offspring_counts` are never used
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Population {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 32 |     fn next_species(&mut self) -> SpeciesId {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn shared_fitness(&self, species: &Species) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn offspring_counts(&self, size: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `speciate`, and `reproduce` are never used
[INFO] [stdout]    --> crates/engine/src/neat/population.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Population {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  92 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn speciate(&mut self, c_excess: f32, c_disjoint: f32, threshold: f32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn reproduce(&mut self, config: &MutationConfig, rng: &mut dyn Rng) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_LEGS` is never used
[INFO] [stdout]  --> crates/engine/src/controller.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const NUM_LEGS: usize = 4;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_INPUTS` is never used
[INFO] [stdout]  --> crates/engine/src/controller.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const NUM_INPUTS: usize = 2 + NUM_LEGS * 3;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_OUTPUTS` is never used
[INFO] [stdout]  --> crates/engine/src/controller.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const NUM_OUTPUTS: usize = NUM_LEGS * 2;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LegInput` is never constructed
[INFO] [stdout]  --> crates/engine/src/controller.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LegInput {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inputs` is never constructed
[INFO] [stdout]   --> crates/engine/src/controller.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Inputs {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_array` is never used
[INFO] [stdout]   --> crates/engine/src/controller.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Inputs {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 18 |     #[must_use]
[INFO] [stdout] 19 |     pub fn into_array(self) -> [f32; NUM_INPUTS] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Outputs` is never constructed
[INFO] [stdout]   --> crates/engine/src/controller.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Outputs {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_array` is never used
[INFO] [stdout]   --> crates/engine/src/controller.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl Outputs {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 46 |     pub fn from_array(outputs: [f32; NUM_OUTPUTS]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ctrnn` is never constructed
[INFO] [stdout]  --> crates/engine/src/ctrnn.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Ctrnn {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_genome`, `inputs`, `outputs`, and `step` are never used
[INFO] [stdout]   --> crates/engine/src/ctrnn.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Ctrnn {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 20 |     pub fn from_genome(genome: &Genome) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn inputs(&mut self, inputs: Inputs) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn outputs(&self) -> Outputs {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn step(&mut self, dt: f32) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MutationConfig` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MutationConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeKind` is never used
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum NodeKind {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeGene` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct NodeGene {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkGene` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct LinkGene {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Genome` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct Genome {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/engine/src/neat/genome.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Genome {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_link`, `add_node`, `random_node_mut`, and `random_link_mut` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:74:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  74 |     fn add_link(&mut self, id: LinkId) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn add_node(&mut self, id: NodeId) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn random_node_mut(&mut self, rng: &mut dyn Rng) -> &mut NodeGene {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn random_link_mut(&mut self, rng: &mut dyn Rng) -> &mut LinkGene {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mutate_bias`, `mutate_tau`, `mutate_weight`, and `mutate_toggle_link` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 107 |     fn mutate_bias(&mut self, rng: &mut dyn Rng, delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn mutate_tau(&mut self, rng: &mut dyn Rng, log_delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn mutate_weight(&mut self, rng: &mut dyn Rng, delta: f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     fn mutate_toggle_link(&mut self, rng: &mut dyn Rng) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mutate_connect` and `mutate_split` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 127 |     fn mutate_connect(&mut self, rng: &mut dyn Rng, registry: &mut InnovationRegistry) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn mutate_split(&mut self, rng: &mut dyn Rng, registry: &mut InnovationRegistry) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance`, `crossover`, and `mutate` are never used
[INFO] [stdout]    --> crates/engine/src/neat/genome.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] 165 |     // distance from self to a representative of a species
[INFO] [stdout] 166 |     pub fn distance(&self, other: &Self, c_excess: f32, c_disjoint: f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn crossover(&self, other: &Self, rng: &mut dyn Rng) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn mutate(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NodeId` is never used
[INFO] [stdout]  --> crates/engine/src/neat/innovation.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type NodeId = usize;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LinkId` is never used
[INFO] [stdout]  --> crates/engine/src/neat/innovation.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type LinkId = (NodeId, NodeId);
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InnovationRegistry` is never constructed
[INFO] [stdout]  --> crates/engine/src/neat/innovation.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct InnovationRegistry {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next_node`, `link`, and `split` are never used
[INFO] [stdout]   --> crates/engine/src/neat/innovation.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl InnovationRegistry {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn next_node(&mut self) -> NodeId {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn link(&mut self, from: NodeId, to: NodeId) -> LinkId {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn split(&mut self, link: LinkId) -> (LinkId, LinkId, NodeId) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Population` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Population {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IndividualId` is never used
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type IndividualId = usize;
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SpeciesId` is never used
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type SpeciesId = usize;
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Individual` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Individual {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Species` is never constructed
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct Species {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_species`, `shared_fitness`, and `offspring_counts` are never used
[INFO] [stdout]   --> crates/engine/src/neat/population.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Population {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 32 |     fn next_species(&mut self) -> SpeciesId {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn shared_fitness(&self, species: &Species) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn offspring_counts(&self, size: usize) -> Vec<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `speciate`, and `reproduce` are never used
[INFO] [stdout]    --> crates/engine/src/neat/population.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl Population {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  92 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn speciate(&mut self, c_excess: f32, c_disjoint: f32, threshold: f32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn reproduce(&mut self, config: &MutationConfig, rng: &mut dyn Rng) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `rand_distr`
[INFO] [stderr]  --> crates/engine/Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | rand_distr = "0.6.0"
[INFO] [stderr]   | ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `rand_distr`
[INFO] [stderr] warning: `neuro` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.99s
[INFO] running `Command { std: "docker" "inspect" "93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1", kill_on_drop: false }`
[INFO] [stdout] 93a15ffefce74ce9038a3b40b233cd9b72daa7a99717e30d02fe1ecb4afedda1
