[INFO] cloning repository https://github.com/Lleyton-Ariton/amanita
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Lleyton-Ariton/amanita" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLleyton-Ariton%2Famanita", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLleyton-Ariton%2Famanita'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cce245996bf72d0a939ce53a89f968248cd6e41e
[INFO] checking Lleyton-Ariton/amanita against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLleyton-Ariton%2Famanita" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Lleyton-Ariton/amanita
[INFO] finished tweaking git repo https://github.com/Lleyton-Ariton/amanita
[INFO] tweaked toml for git repo https://github.com/Lleyton-Ariton/amanita written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Lleyton-Ariton/amanita on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Lleyton-Ariton/amanita 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e
[INFO] running `Command { std: "docker" "start" "f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e", 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" "f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e", 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" "f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling libc v0.2.152
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]     Checking amanita-core v0.1.0 (/opt/rustwide/workdir/amanita-core)
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling num-bigint v0.1.45
[INFO] [stdout] warning: unused import: `TimeDependent`
[INFO] [stdout]   --> amanita-core/src/queue/circular.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::time::{Increment, TimeDependent};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]  --> amanita-core/src/id.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `alloc`, `default`, `derive`, `precision-16`, `precision-32`, `precision-64`, `std`, `time-16`, `time-32`, `time-64`, and `time-8`
[INFO] [stdout]   = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]   --> amanita-core/src/id.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `alloc`, `default`, `derive`, `precision-16`, `precision-32`, `precision-64`, `std`, `time-16`, `time-32`, `time-64`, and `time-8`
[INFO] [stdout]    = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]   --> amanita-core/src/id.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `alloc`, `default`, `derive`, `precision-16`, `precision-32`, `precision-64`, `std`, `time-16`, `time-32`, `time-64`, and `time-8`
[INFO] [stdout]    = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NeuronId`
[INFO] [stdout]  --> amanita-core/src/neuron/neuron.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Event, NeuronId, Time};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Update`
[INFO] [stdout]   --> amanita-core/src/neuron/neuron.rs:22:40
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::states::{Reconcile, States, Update};
[INFO] [stdout]    |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> amanita-core/src/neuron/connection/candidates.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `write`
[INFO] [stdout]  --> amanita-core/src/neuron/connection/error.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     write,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 4 |     Display,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stdout] warning: unused variable: `delay`
[INFO] [stdout]    --> amanita-core/src/queue/spsc.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         delay: usize,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_delay`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `threshold` is never read
[INFO] [stdout]    --> amanita-core/src/neuron/neuron.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut threshold = false;
[INFO] [stdout]     |                             ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 147 |         (self.parameters, threshold) = (self.threshold)(self.parameters, self.time);
[INFO] [stdout]     |                           --------- `threshold` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> amanita-core/src/neuron/neuron.rs:179:47
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn advance(&mut self, event: Self::Event, context: &mut TQueue) -> Self::Output {
[INFO] [stdout]     |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> amanita-core/src/neuron/neuron.rs:292:14
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut subscriber_neuron, synapse) = subscriber;
[INFO] [stdout]     |              ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> amanita-core/src/neuron/synapse.rs:15:49
[INFO] [stdout]    |
[INFO] [stdout] 15 |             |behaviour_states, external_states, time| {
[INFO] [stdout]    |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> amanita-core/src/neuron/synapse.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 |             |behaviour_states, external_states, time| {
[INFO] [stdout]    |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PruneConnection` is never used
[INFO] [stdout]   --> amanita-core/src/neuron/connection/connection.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait PruneConnection<TIndex, TConnection> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling num-rational v0.1.43
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling zerocopy v0.8.0-alpha.6
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling miniz-sys v0.1.12
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking itoa v1.0.17
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling askama_parser v0.2.1
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking enum_primitive v0.1.1
[INFO] [stderr]     Checking flate2 v0.2.20
[INFO] [stderr]     Checking amanita-neuron v0.1.0 (/opt/rustwide/workdir/amanita-neuron)
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> amanita-neuron/src/map.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use core::ops::{Index, IndexMut};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Range`
[INFO] [stdout]  --> amanita-neuron/src/group.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::ops::{Index, IndexMut, Range};
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IndividualId`
[INFO] [stdout]  --> amanita-neuron/src/group.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::id::{GroupId, IndividualId};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NeuronId` and `Neuron`
[INFO] [stdout]  --> amanita-neuron/src/group.rs:6:33
[INFO] [stdout]   |
[INFO] [stdout] 6 | use amanita_core::{Id as HasId, Neuron, NeuronId};
[INFO] [stdout]   |                                 ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::connectable::Connectable`
[INFO] [stdout]   --> amanita-neuron/src/group.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use amanita_core::connectable::Connectable;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash::{Hash, Hasher};
[INFO] [stdout]   |                  ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ops::IndexMut`
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::ops::IndexMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::advance::Advance`
[INFO] [stdout]  --> amanita-neuron/src/input/poisson.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::advance::Advance;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::advance::Advance`
[INFO] [stdout]  --> amanita-neuron/src/input/rate.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::advance::Advance;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::*`
[INFO] [stdout]  --> amanita-neuron/src/connection/builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::distributions::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> amanita-neuron/src/connection/builder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::connectable::Connectable`
[INFO] [stdout]  --> amanita-neuron/src/topology/space.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use amanita_core::connectable::Connectable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::connection::ConnectionError`
[INFO] [stdout]  --> amanita-neuron/src/topology/space.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use amanita_core::connection::ConnectionError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn metric(&self) -> &(fn(TPoint, TPoint) -> f32) {
[INFO] [stdout]    |                              ^                         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 29 -     pub fn metric(&self) -> &(fn(TPoint, TPoint) -> f32) {
[INFO] [stdout] 29 +     pub fn metric(&self) -> &fn(TPoint, TPoint) -> f32 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> amanita-neuron/src/group.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 |i| {
[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: `dispatch`
[INFO] [stdout]   --> amanita-neuron/src/input/source.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn trigger<TDispatch>(&self, dispatch: &mut TDispatch) {
[INFO] [stdout]    |                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dispatch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subscriber`
[INFO] [stdout]   --> amanita-neuron/src/input/source.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn connect(&mut self, subscriber: (&mut Neuron<Id, D, A>, Synapse)) -> Result<Self::ConnectionSuccess, Self::ConnectionError> {
[INFO] [stdout]    |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscriber`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `neurons` is never read
[INFO] [stdout]   --> amanita-neuron/src/map.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NeuronMap<Id, TMap, TStore>
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     neurons: TStore,
[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 `FNV_PRIME` is never used
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const FNV_PRIME: u64 = 0x0100_0000_01b3;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FNV_OFFSET_BIAS` is never used
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const FNV_OFFSET_BIAS: u64 = 0xcbf2_9ce4_8422_2325;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fnv1a_hash` is never used
[INFO] [stdout]   --> amanita-neuron/src/hash.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | const fn fnv1a_hash(bytes: &[u8]) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prime` is never used
[INFO] [stdout]   --> amanita-neuron/src/hash.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn prime(number: u64) -> bool {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `targets` are never read
[INFO] [stdout]   --> amanita-neuron/src/input/source.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SpikeSource<Id, const S: usize>
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     id: Id,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 13 |
[INFO] [stdout] 14 |     targets: [(Id, Index, Time); S]
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpikeSource` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dimensions` and `space` are never read
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Plane<const S: usize> {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 35 |     dimensions: Dimensions2D,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 36 |
[INFO] [stdout] 37 |     space: MetricSpace<Point, S>
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dimensions` is never read
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Volume<const S: usize> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 41 |     dimensions: Dimensions3D,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metric` is never read
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct MappedMetricFunction<TPoint, TObject> {
[INFO] [stdout]    |        -------------------- field in this struct
[INFO] [stdout] 47 |     metric: fn(TPoint, TPoint) -> f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metric` is never read
[INFO] [stdout]    --> amanita-neuron/src/topology/space.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct MappedSpace<TPoint, TObject, const S: usize> {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 121 |     points: [(TPoint, TObject); S],
[INFO] [stdout] 122 |     metric: MappedMetricFunction<TPoint, TObject>
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metric` is never read
[INFO] [stdout]    --> amanita-neuron/src/topology/space.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct MappedMetric<TPoint, TObject> {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 133 |     metric: fn(TPoint, TPoint) -> f32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> amanita-neuron/src/topology/space.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl<TPoint, TObject> MappedMetric<TPoint, TObject> {
[INFO] [stdout]     | --------------------------------------------------- associated function in this implementation
[INFO] [stdout] 139 |     fn new(metric: fn(TPoint, TPoint) -> f32) -> MappedMetric<TPoint, TObject> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> amanita-neuron/src/group.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn iter(&self) -> core::slice::Iter<TNeuron> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn iter(&self) -> core::slice::Iter<'_, TNeuron> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> amanita-neuron/src/group.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn iter_mut(&mut self) -> core::slice::IterMut<TNeuron> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn iter_mut(&mut self) -> core::slice::IterMut<'_, TNeuron> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:132:25
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                         pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 144 |                         let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:181:29
[INFO] [stdout]     |
[INFO] [stdout] 181 | ...                   pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 181 |                             let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:214:29
[INFO] [stdout]     |
[INFO] [stdout] 214 | ...                   pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 214 |                             let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:226:29
[INFO] [stdout]     |
[INFO] [stdout] 226 | ...                   pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 226 |                             let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:267:29
[INFO] [stdout]     |
[INFO] [stdout] 267 | ...                   publisher.connect((&mut subscriber, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 267 |                             let _unused = publisher.connect((&mut subscriber, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking humansize v2.1.3
[INFO] [stderr]     Checking askama_escape v0.10.3
[INFO] [stderr]     Checking lzw v0.10.0
[INFO] [stderr]     Checking bitflags v0.7.0
[INFO] [stderr]     Checking glob v0.2.11
[INFO] [stderr]     Checking inflate v0.1.1
[INFO] [stderr]     Checking byteorder v0.5.3
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking rand_core v0.9.0-alpha.1
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking gif v0.9.2
[INFO] [stderr]    Compiling darling_core v0.14.4
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking image v0.10.4
[INFO] [stderr]     Checking png v0.5.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking raster v0.2.0
[INFO] [stderr]     Checking rand_chacha v0.9.0-alpha.1
[INFO] [stderr]     Checking amanita-distributed v0.1.0 (/opt/rustwide/workdir/amanita-distributed)
[INFO] [stderr]     Checking rand_hc v0.3.2
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[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: `Arc`, `Condvar`, and `Mutex`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Condvar, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::channel`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::mpsc::channel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver` and `Sender`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::mpsc::{Sender, Receiver};
[INFO] [stdout]   |                       ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rand v0.9.0-alpha.1
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]     Checking petgraph-graphml v3.1.0
[INFO] [stdout] warning: unused imports: `IndexMut` and `Index`
[INFO] [stdout]  --> amanita-neuron/src/map.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use core::ops::{Index, IndexMut};
[INFO] [stdout]   |                 ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Range`
[INFO] [stdout]  --> amanita-neuron/src/group.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::ops::{Index, IndexMut, Range};
[INFO] [stdout]   |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IndividualId`
[INFO] [stdout]  --> amanita-neuron/src/group.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::id::{GroupId, IndividualId};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NeuronId` and `Neuron`
[INFO] [stdout]  --> amanita-neuron/src/group.rs:6:33
[INFO] [stdout]   |
[INFO] [stdout] 6 | use amanita_core::{Id as HasId, Neuron, NeuronId};
[INFO] [stdout]   |                                 ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::connectable::Connectable`
[INFO] [stdout]   --> amanita-neuron/src/group.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use amanita_core::connectable::Connectable;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Hash` and `Hasher`
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash::{Hash, Hasher};
[INFO] [stdout]   |                  ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::ops::IndexMut`
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::ops::IndexMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::advance::Advance`
[INFO] [stdout]  --> amanita-neuron/src/input/poisson.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::advance::Advance;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::advance::Advance`
[INFO] [stdout]  --> amanita-neuron/src/input/rate.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::advance::Advance;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::distributions::*`
[INFO] [stdout]  --> amanita-neuron/src/connection/builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::distributions::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> amanita-neuron/src/connection/builder.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::connectable::Connectable`
[INFO] [stdout]  --> amanita-neuron/src/topology/space.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use amanita_core::connectable::Connectable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::connection::ConnectionError`
[INFO] [stdout]  --> amanita-neuron/src/topology/space.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use amanita_core::connection::ConnectionError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn metric(&self) -> &(fn(TPoint, TPoint) -> f32) {
[INFO] [stdout]    |                              ^                         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 29 -     pub fn metric(&self) -> &(fn(TPoint, TPoint) -> f32) {
[INFO] [stdout] 29 +     pub fn metric(&self) -> &fn(TPoint, TPoint) -> f32 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> amanita-core/tests/test_ring_buffer.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut push_result = ring_buffer.push(DummyEvent(0));
[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]   --> amanita-core/tests/test_ring_buffer.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut pull_result = ring_buffer.pull();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> amanita-core/tests/test_ring_buffer.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let mut pull_result = ring_buffer.pull();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> amanita-core/tests/test_ring_buffer.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut push_result = ring_buffer.push(DummyEvent(1));
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> amanita-core/tests/test_ring_buffer.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let mut pull_result = ring_buffer.pull();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> amanita-core/tests/test_ring_buffer.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let mut pull_result = ring_buffer.pull();
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> amanita-neuron/src/group.rs:81:18
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 |i| {
[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: value assigned to `expected_events` is never read
[INFO] [stdout]    --> amanita-core/tests/test_ring_buffer.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 238 |     expected_events[2] = Some(DummyEvent(13));
[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: `dispatch`
[INFO] [stdout]   --> amanita-neuron/src/input/source.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn trigger<TDispatch>(&self, dispatch: &mut TDispatch) {
[INFO] [stdout]    |                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dispatch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subscriber`
[INFO] [stdout]   --> amanita-neuron/src/input/source.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn connect(&mut self, subscriber: (&mut Neuron<Id, D, A>, Synapse)) -> Result<Self::ConnectionSuccess, Self::ConnectionError> {
[INFO] [stdout]    |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscriber`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling plotly_derive v0.8.4
[INFO] [stdout] warning: unused import: `TimeDependent`
[INFO] [stdout]   --> amanita-core/src/queue/circular.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::time::{Increment, TimeDependent};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]  --> amanita-core/src/id.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `alloc`, `default`, `derive`, `precision-16`, `precision-32`, `precision-64`, `std`, `time-16`, `time-32`, `time-64`, and `time-8`
[INFO] [stdout]   = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]   --> amanita-core/src/id.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `alloc`, `default`, `derive`, `precision-16`, `precision-32`, `precision-64`, `std`, `time-16`, `time-32`, `time-64`, and `time-8`
[INFO] [stdout]    = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `serde`
[INFO] [stdout]   --> amanita-core/src/id.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `alloc`, `default`, `derive`, `precision-16`, `precision-32`, `precision-64`, `std`, `time-16`, `time-32`, `time-64`, and `time-8`
[INFO] [stdout]    = help: consider adding `serde` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NeuronId`
[INFO] [stdout]  --> amanita-core/src/neuron/neuron.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{Event, NeuronId, Time};
[INFO] [stdout]   |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Update`
[INFO] [stdout]   --> amanita-core/src/neuron/neuron.rs:22:40
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::states::{Reconcile, States, Update};
[INFO] [stdout]    |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::marker::PhantomData`
[INFO] [stdout]  --> amanita-core/src/neuron/connection/candidates.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `write`
[INFO] [stdout]  --> amanita-core/src/neuron/connection/error.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     write,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 4 |     Display,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `neurons` is never read
[INFO] [stdout]   --> amanita-neuron/src/map.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NeuronMap<Id, TMap, TStore>
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     neurons: TStore,
[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 `FNV_PRIME` is never used
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const FNV_PRIME: u64 = 0x0100_0000_01b3;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FNV_OFFSET_BIAS` is never used
[INFO] [stdout]  --> amanita-neuron/src/hash.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const FNV_OFFSET_BIAS: u64 = 0xcbf2_9ce4_8422_2325;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fnv1a_hash` is never used
[INFO] [stdout]   --> amanita-neuron/src/hash.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | const fn fnv1a_hash(bytes: &[u8]) -> u64 {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prime` is never used
[INFO] [stdout]   --> amanita-neuron/src/hash.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn prime(number: u64) -> bool {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `targets` are never read
[INFO] [stdout]   --> amanita-neuron/src/input/source.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct SpikeSource<Id, const S: usize>
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     id: Id,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 13 |
[INFO] [stdout] 14 |     targets: [(Id, Index, Time); S]
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpikeSource` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dimensions` and `space` are never read
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Plane<const S: usize> {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 35 |     dimensions: Dimensions2D,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 36 |
[INFO] [stdout] 37 |     space: MetricSpace<Point, S>
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dimensions` is never read
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Volume<const S: usize> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 41 |     dimensions: Dimensions3D,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metric` is never read
[INFO] [stdout]   --> amanita-neuron/src/topology/space.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct MappedMetricFunction<TPoint, TObject> {
[INFO] [stdout]    |        -------------------- field in this struct
[INFO] [stdout] 47 |     metric: fn(TPoint, TPoint) -> f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metric` is never read
[INFO] [stdout]    --> amanita-neuron/src/topology/space.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct MappedSpace<TPoint, TObject, const S: usize> {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 121 |     points: [(TPoint, TObject); S],
[INFO] [stdout] 122 |     metric: MappedMetricFunction<TPoint, TObject>
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `metric` is never read
[INFO] [stdout]    --> amanita-neuron/src/topology/space.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct MappedMetric<TPoint, TObject> {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 133 |     metric: fn(TPoint, TPoint) -> f32,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> amanita-neuron/src/topology/space.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl<TPoint, TObject> MappedMetric<TPoint, TObject> {
[INFO] [stdout]     | --------------------------------------------------- associated function in this implementation
[INFO] [stdout] 139 |     fn new(metric: fn(TPoint, TPoint) -> f32) -> MappedMetric<TPoint, TObject> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> amanita-neuron/src/group.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn iter(&self) -> core::slice::Iter<TNeuron> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn iter(&self) -> core::slice::Iter<'_, TNeuron> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> amanita-neuron/src/group.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn iter_mut(&mut self) -> core::slice::IterMut<TNeuron> {
[INFO] [stdout]     |                     ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn iter_mut(&mut self) -> core::slice::IterMut<'_, TNeuron> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:132:25
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:144:25
[INFO] [stdout]     |
[INFO] [stdout] 144 |                         pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 144 |                         let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                         +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:181:29
[INFO] [stdout]     |
[INFO] [stdout] 181 | ...                   pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 181 |                             let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:214:29
[INFO] [stdout]     |
[INFO] [stdout] 214 | ...                   pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 214 |                             let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:226:29
[INFO] [stdout]     |
[INFO] [stdout] 226 | ...                   pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 226 |                             let _unused = pre_synaptic_neuron.connect((post_synaptic_neuron, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> amanita-neuron/src/connection/builder.rs:267:29
[INFO] [stdout]     |
[INFO] [stdout] 267 | ...                   publisher.connect((&mut subscriber, connection));
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 267 |                             let _unused = publisher.connect((&mut subscriber, connection));
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay`
[INFO] [stdout]    --> amanita-core/src/queue/spsc.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         delay: usize,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_delay`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `threshold` is never read
[INFO] [stdout]    --> amanita-core/src/neuron/neuron.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut threshold = false;
[INFO] [stdout]     |                             ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 147 |         (self.parameters, threshold) = (self.threshold)(self.parameters, self.time);
[INFO] [stdout]     |                           --------- `threshold` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> amanita-core/src/neuron/neuron.rs:179:47
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn advance(&mut self, event: Self::Event, context: &mut TQueue) -> Self::Output {
[INFO] [stdout]     |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> amanita-core/src/neuron/neuron.rs:292:14
[INFO] [stdout]     |
[INFO] [stdout] 292 |         let (mut subscriber_neuron, synapse) = subscriber;
[INFO] [stdout]     |              ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> amanita-core/src/neuron/synapse.rs:15:49
[INFO] [stdout]    |
[INFO] [stdout] 15 |             |behaviour_states, external_states, time| {
[INFO] [stdout]    |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> amanita-core/src/neuron/synapse.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 |             |behaviour_states, external_states, time| {
[INFO] [stdout]    |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PruneConnection` is never used
[INFO] [stdout]   --> amanita-core/src/neuron/connection/connection.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait PruneConnection<TIndex, TConnection> {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[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: `Arc`, `Condvar`, and `Mutex`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::{Arc, Condvar, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::channel`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::mpsc::channel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver` and `Sender`
[INFO] [stdout]  --> amanita-distributed/src/arbiter.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::mpsc::{Sender, Receiver};
[INFO] [stdout]   |                       ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling serde_with_macros v2.3.3
[INFO] [stderr]     Checking ndarray-rand v0.14.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking erased-serde v0.3.31
[INFO] [stderr]     Checking serde_with v2.3.3
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]    Compiling askama_derive v0.12.5
[INFO] [stderr]     Checking askama v0.12.1
[INFO] [stderr]     Checking plotly v0.8.4
[INFO] [stderr]     Checking ganglia v0.1.0 (/opt/rustwide/workdir/examples/ganglia)
[INFO] [stdout] warning: unused import: `Reconcile`
[INFO] [stdout]  --> examples/ganglia/src/synapse/stdp.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::states::{Reconcile, Retrieve, States, Update};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::neurons::LIFParameters`
[INFO] [stdout]  --> examples/ganglia/src/synapse/stdp.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::neurons::LIFParameters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> examples/ganglia/src/synapse/stdp.rs:122:21
[INFO] [stdout]     |
[INFO] [stdout] 122 |         states[7] = (Time::default() as f32);
[INFO] [stdout]     |                     ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 122 -         states[7] = (Time::default() as f32);
[INFO] [stdout] 122 +         states[7] = Time::default() as f32;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Reconcile`
[INFO] [stdout]  --> examples/ganglia/src/synapse/eligibility.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use amanita_core::states::{Reconcile, Retrieve, States, Update};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::neurons::LIFParameters`
[INFO] [stdout]  --> examples/ganglia/src/synapse/eligibility.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::neurons::LIFParameters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stdp::STDPSynapse`
[INFO] [stdout]   --> examples/ganglia/src/synapse/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     stdp::STDPSynapse,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> examples/ganglia/src/output/classification.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::queue::DelayedQueue`
[INFO] [stdout]   --> examples/ganglia/src/output/classification.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use amanita_core::queue::DelayedQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::slice::Chunks`
[INFO] [stdout]  --> examples/ganglia/src/output/population.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::slice::Chunks;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::duplicate::Duplicate`
[INFO] [stdout]  --> examples/ganglia/src/output/population.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use amanita_core::duplicate::Duplicate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::queue::DelayedQueue`
[INFO] [stdout]   --> examples/ganglia/src/output/population.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use amanita_core::queue::DelayedQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> examples/ganglia/src/output/population.rs:65:32
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 Class::new(id, ((i * P)..(((i % P) * P) + P)), [0; P])
[INFO] [stdout]    |                                ^                            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 65 -                 Class::new(id, ((i * P)..(((i % P) * P) + P)), [0; P])
[INFO] [stdout] 65 +                 Class::new(id, (i * P)..(((i % P) * P) + P), [0; P])
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> examples/ganglia/src/output/regression.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::queue::DelayedQueue`
[INFO] [stdout]   --> examples/ganglia/src/output/regression.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use amanita_core::queue::DelayedQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::algebra::dot`
[INFO] [stdout]   --> examples/ganglia/src/output/regression.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::utils::algebra::dot;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClassificationLayerParameters`
[INFO] [stdout]  --> examples/ganglia/src/output/mod.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 |     classification::{ClassificationLayerParameters, ClassificationLayer},
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Undirected`
[INFO] [stdout]  --> examples/ganglia/src/utils/graph.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use petgraph::{Directed, Graph, Undirected};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NodeIndex` and `UnGraph`
[INFO] [stdout]  --> examples/ganglia/src/utils/graph.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use petgraph::graph::{NodeIndex, UnGraph};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `connection::feedforward` and `connection::recurrent`
[INFO] [stdout]  --> examples/ganglia/src/utils/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     connection::feedforward,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     connection::recurrent,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Update`
[INFO] [stdout]  --> examples/ganglia/src/neurons/lif/parameters.rs:1:68
[INFO] [stdout]   |
[INFO] [stdout] 1 | use amanita_core::states::{Reconcile, Retrieve, States, Transmute, Update};
[INFO] [stdout]   |                                                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> examples/ganglia/src/neurons/lif/dynamics.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parameters.time = (time as f32);
[INFO] [stdout]    |                       ^           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -     parameters.time = (time as f32);
[INFO] [stdout] 10 +     parameters.time = time as f32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Reset` and `Threshold`
[INFO] [stdout]   --> examples/ganglia/src/neurons/lif/mod.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | use amanita_core::neuron::neuron::{Reset, Threshold};
[INFO] [stdout]    |                                    ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LIFDynamics`, `LIFReset`, and `LIFThreshold`
[INFO] [stdout]  --> examples/ganglia/src/neurons/mod.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 |     lif::{LIFParameters, LIFNeuron, LIFDynamics, LIFThreshold, LIFReset}
[INFO] [stdout]   |                                     ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Standard`
[INFO] [stdout]  --> examples/ganglia/src/learning.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::distributions::{Standard, Distribution};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hc128Core`
[INFO] [stdout]  --> examples/ganglia/src/learning.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand_hc::{Hc128Core, Hc128Rng};
[INFO] [stdout]   |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Id` and `Time`
[INFO] [stdout]  --> examples/ganglia/src/learning.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use amanita_core::{Event, Id, Neuron, NeuronId, Synapse, Time};
[INFO] [stdout]   |                           ^^                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DelayedQueueOps`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 | use amanita_core::queue::{QueueOps, DelayedQueueOps};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_neuron::input::poisson::PoissonSource`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use amanita_neuron::input::poisson::PoissonSource;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OneToOne` and `Recurrent`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:32:56
[INFO] [stdout]    |
[INFO] [stdout] 32 | use amanita_neuron::connection::builder::{Feedforward, OneToOne, Recurrent};
[INFO] [stdout]    |                                                        ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_neuron::connection::methods::Single`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use amanita_neuron::connection::methods::Single;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassificationLayer` and `PopulationCode`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 | use crate::output::{ClassificationLayer, PopulationCode, RegressionLayer, RegressionLayerParameters};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `graph` and `write`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crate::utils::graph::{graph, write};
[INFO] [stdout]    |                           ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed
[INFO] [stdout]    --> examples/ganglia/src/synapse/stdp.rs:53:25
[INFO] [stdout]     |
[INFO] [stdout]  53 |     external = external.update("u_t", u_pre + weight);
[INFO] [stdout]     |                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: cannot satisfy `<States as amanita_core::states::Update<_>>::Value == f32`
[INFO] [stdout] note: multiple `impl`s or `where` clauses satisfying `States: amanita_core::states::Update<_>` found
[INFO] [stdout]    --> examples/ganglia/src/synapse/stdp.rs:46:124
[INFO] [stdout]     |
[INFO] [stdout]  46 |         States: Retrieve<STDPSynapse, Output = f32> + Update<STDPSynapse, Value = f32> + Retrieve<TNeuron, Output = f32> + Update<TNeuron, Value = f32>
[INFO] [stdout]     |                                                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 | impl Update<STDPSynapse> for States {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/ganglia/src/synapse/eligibility.rs:248:1
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl Update<EligibilitySynapse> for States {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/ganglia/src/neurons/lif/mod.rs:37:1
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Update<LIFParameters> for States {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]     |
[INFO] [stdout]  53 -     external = external.update("u_t", u_pre + weight);
[INFO] [stdout]  53 +     external = <States as amanita_core::states::Update<TParameters>>::update(&mut external, "u_t", u_pre + weight);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]  --> examples/ganglia/src/synapse/weighted.rs:9:69
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn pre<TSynapse, TNeuron>(parameters: States, mut external: States, time: Time) -> (States, States)
[INFO] [stdout]   |                                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/weighted.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn post(parameters: States, mut external: States, time: Time) -> (States, States) {
[INFO] [stdout]    |                             ----^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> examples/ganglia/src/synapse/weighted.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn post(parameters: States, mut external: States, time: Time) -> (States, States) {
[INFO] [stdout]    |                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/stdp.rs:20:59
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn dynamics<STDPSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]    |                                                           ----^^^^^^^^
[INFO] [stdout]    |                                                           |
[INFO] [stdout]    |                                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/stdp.rs:73:42
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn post<TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]    |                                          ----^^^^^^^^
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Reconcile`
[INFO] [stdout]  --> examples/ganglia/src/synapse/stdp.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use amanita_core::states::{Reconcile, Retrieve, States, Update};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::neurons::LIFParameters`
[INFO] [stdout]  --> examples/ganglia/src/synapse/stdp.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::neurons::LIFParameters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> examples/ganglia/src/synapse/stdp.rs:122:21
[INFO] [stdout]     |
[INFO] [stdout] 122 |         states[7] = (Time::default() as f32);
[INFO] [stdout]     |                     ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 122 -         states[7] = (Time::default() as f32);
[INFO] [stdout] 122 +         states[7] = Time::default() as f32;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Reconcile`
[INFO] [stdout]  --> examples/ganglia/src/synapse/eligibility.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use amanita_core::states::{Reconcile, Retrieve, States, Update};
[INFO] [stdout]   |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::neurons::LIFParameters`
[INFO] [stdout]  --> examples/ganglia/src/synapse/eligibility.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::neurons::LIFParameters;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stdp::STDPSynapse`
[INFO] [stdout]   --> examples/ganglia/src/synapse/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     stdp::STDPSynapse,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> examples/ganglia/src/output/classification.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::queue::DelayedQueue`
[INFO] [stdout]   --> examples/ganglia/src/output/classification.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use amanita_core::queue::DelayedQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::slice::Chunks`
[INFO] [stdout]  --> examples/ganglia/src/output/population.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::slice::Chunks;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::duplicate::Duplicate`
[INFO] [stdout]  --> examples/ganglia/src/output/population.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use amanita_core::duplicate::Duplicate;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::queue::DelayedQueue`
[INFO] [stdout]   --> examples/ganglia/src/output/population.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use amanita_core::queue::DelayedQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> examples/ganglia/src/output/population.rs:65:32
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 Class::new(id, ((i * P)..(((i % P) * P) + P)), [0; P])
[INFO] [stdout]    |                                ^                            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 65 -                 Class::new(id, ((i * P)..(((i % P) * P) + P)), [0; P])
[INFO] [stdout] 65 +                 Class::new(id, (i * P)..(((i % P) * P) + P), [0; P])
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray::prelude::*`
[INFO] [stdout]  --> examples/ganglia/src/output/regression.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_core::queue::DelayedQueue`
[INFO] [stdout]   --> examples/ganglia/src/output/regression.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use amanita_core::queue::DelayedQueue;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::algebra::dot`
[INFO] [stdout]   --> examples/ganglia/src/output/regression.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::utils::algebra::dot;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClassificationLayerParameters`
[INFO] [stdout]  --> examples/ganglia/src/output/mod.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 |     classification::{ClassificationLayerParameters, ClassificationLayer},
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Undirected`
[INFO] [stdout]  --> examples/ganglia/src/utils/graph.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use petgraph::{Directed, Graph, Undirected};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NodeIndex` and `UnGraph`
[INFO] [stdout]  --> examples/ganglia/src/utils/graph.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use petgraph::graph::{NodeIndex, UnGraph};
[INFO] [stdout]   |                       ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `connection::feedforward` and `connection::recurrent`
[INFO] [stdout]  --> examples/ganglia/src/utils/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     connection::feedforward,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     connection::recurrent,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Update`
[INFO] [stdout]  --> examples/ganglia/src/neurons/lif/parameters.rs:1:68
[INFO] [stdout]   |
[INFO] [stdout] 1 | use amanita_core::states::{Reconcile, Retrieve, States, Transmute, Update};
[INFO] [stdout]   |                                                                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> examples/ganglia/src/neurons/lif/dynamics.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 |     parameters.time = (time as f32);
[INFO] [stdout]    |                       ^           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -     parameters.time = (time as f32);
[INFO] [stdout] 10 +     parameters.time = time as f32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:68:56
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn dynamics<TSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]    |                                                        ----^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tau_e`
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let (tau_u, tau_x, tau_e) = (
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_tau_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theta_pos`
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let (theta_pos, theta_neg) = (
[INFO] [stdout]    |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_theta_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Reset` and `Threshold`
[INFO] [stdout]   --> examples/ganglia/src/neurons/lif/mod.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | use amanita_core::neuron::neuron::{Reset, Threshold};
[INFO] [stdout]    |                                    ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theta_neg`
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let (theta_pos, theta_neg) = (
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_theta_neg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `e_trace` is never read
[INFO] [stdout]    --> examples/ganglia/src/synapse/eligibility.rs:72:32
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let (mut u_bar, mut x_bar, mut e_trace) = (
[INFO] [stdout]     |                                ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 103 |     e_trace = psi(u_t, 1.0, 0.3) * x_bar;
[INFO] [stdout]     |     ------------------------------------ `e_trace` is overwritten here before the previous value is read
[INFO] [stdout]     |
[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]    --> examples/ganglia/src/synapse/eligibility.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn pre<TSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]     |                           ----^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LIFDynamics`, `LIFReset`, and `LIFThreshold`
[INFO] [stdout]  --> examples/ganglia/src/neurons/mod.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 |     lif::{LIFParameters, LIFNeuron, LIFDynamics, LIFThreshold, LIFReset}
[INFO] [stdout]   |                                     ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Standard`
[INFO] [stdout]  --> examples/ganglia/src/learning.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::distributions::{Standard, Distribution};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hc128Core`
[INFO] [stdout]  --> examples/ganglia/src/learning.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand_hc::{Hc128Core, Hc128Rng};
[INFO] [stdout]   |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/synapse/eligibility.rs:138:52
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn post<TSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]     |                                                    ----^^^^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tau_x`
[INFO] [stdout]    --> examples/ganglia/src/synapse/eligibility.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let (x_bar, tau_x) = (
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_tau_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Id` and `Time`
[INFO] [stdout]  --> examples/ganglia/src/learning.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use amanita_core::{Event, Id, Neuron, NeuronId, Synapse, Time};
[INFO] [stdout]   |                           ^^                             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DelayedQueueOps`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 | use amanita_core::queue::{QueueOps, DelayedQueueOps};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_neuron::input::poisson::PoissonSource`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use amanita_neuron::input::poisson::PoissonSource;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OneToOne` and `Recurrent`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:32:56
[INFO] [stdout]    |
[INFO] [stdout] 32 | use amanita_neuron::connection::builder::{Feedforward, OneToOne, Recurrent};
[INFO] [stdout]    |                                                        ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `amanita_neuron::connection::methods::Single`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use amanita_neuron::connection::methods::Single;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassificationLayer` and `PopulationCode`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 | use crate::output::{ClassificationLayer, PopulationCode, RegressionLayer, RegressionLayerParameters};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `graph` and `write`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crate::utils::graph::{graph, write};
[INFO] [stdout]    |                           ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:75:25
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     let mut gaussian = Normal::new(0.0, 1.0 / { 256.0 }).unwrap();
[INFO] [stdout]    |                         ----^^^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |         eligibility: |(context, rng)| {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |         inhibitory: |(context, rng)| {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:62:23
[INFO] [stdout]    |
[INFO] [stdout] 62 |         excitatory: |(context, rng)| {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0284]: type annotations needed
[INFO] [stdout]    --> examples/ganglia/src/synapse/stdp.rs:53:25
[INFO] [stdout]     |
[INFO] [stdout]  53 |     external = external.update("u_t", u_pre + weight);
[INFO] [stdout]     |                         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: cannot satisfy `<States as amanita_core::states::Update<_>>::Value == f32`
[INFO] [stdout] note: multiple `impl`s or `where` clauses satisfying `States: amanita_core::states::Update<_>` found
[INFO] [stdout]    --> examples/ganglia/src/synapse/stdp.rs:46:124
[INFO] [stdout]     |
[INFO] [stdout]  46 |         States: Retrieve<STDPSynapse, Output = f32> + Update<STDPSynapse, Value = f32> + Retrieve<TNeuron, Output = f32> + Update<TNeuron, Value = f32>
[INFO] [stdout]     |                                                                                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 | impl Update<STDPSynapse> for States {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/ganglia/src/synapse/eligibility.rs:248:1
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl Update<EligibilitySynapse> for States {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: examples/ganglia/src/neurons/lif/mod.rs:37:1
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl Update<LIFParameters> for States {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: try using a fully qualified path to specify the expected types
[INFO] [stdout]     |
[INFO] [stdout]  53 -     external = external.update("u_t", u_pre + weight);
[INFO] [stdout]  53 +     external = <States as amanita_core::states::Update<TParameters>>::update(&mut external, "u_t", u_pre + weight);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut config = config();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let mut sensory_generator = |i| { PoissonRate::new(NeuronId::default(), 25.0, SEED + (i as u64 * PERTURBATION)) };
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let mut target_generator = |toggle: usize| { toggle % 2 };
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut cam: NeuronGroup<GanglionicNeuron, 16> = NeuronGroup::generate(&mut neuron_generator);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |     let mut ganglion1 = NeuronGroup::<GanglionicNeuron, { 256 + 16 }>::merge(sam, cam);
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut accumulated = 0.0;
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:122:33
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut neuron_generator = |i| {
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accumulated`
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut accumulated = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accumulated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0284`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ganglia` (bin "ganglia") due to 1 previous error; 57 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]  --> examples/ganglia/src/synapse/weighted.rs:9:69
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn pre<TSynapse, TNeuron>(parameters: States, mut external: States, time: Time) -> (States, States)
[INFO] [stdout]   |                                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/weighted.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn post(parameters: States, mut external: States, time: Time) -> (States, States) {
[INFO] [stdout]    |                             ----^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> examples/ganglia/src/synapse/weighted.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn post(parameters: States, mut external: States, time: Time) -> (States, States) {
[INFO] [stdout]    |                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/stdp.rs:20:59
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn dynamics<STDPSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]    |                                                           ----^^^^^^^^
[INFO] [stdout]    |                                                           |
[INFO] [stdout]    |                                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/stdp.rs:73:42
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn post<TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]    |                                          ----^^^^^^^^
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:68:56
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn dynamics<TSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]    |                                                        ----^^^^^^^^
[INFO] [stdout]    |                                                        |
[INFO] [stdout]    |                                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tau_e`
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:78:24
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let (tau_u, tau_x, tau_e) = (
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_tau_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theta_pos`
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let (theta_pos, theta_neg) = (
[INFO] [stdout]    |          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_theta_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theta_neg`
[INFO] [stdout]   --> examples/ganglia/src/synapse/eligibility.rs:84:21
[INFO] [stdout]    |
[INFO] [stdout] 84 |     let (theta_pos, theta_neg) = (
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_theta_neg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `e_trace` is never read
[INFO] [stdout]    --> examples/ganglia/src/synapse/eligibility.rs:72:32
[INFO] [stdout]     |
[INFO] [stdout]  72 |     let (mut u_bar, mut x_bar, mut e_trace) = (
[INFO] [stdout]     |                                ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 103 |     e_trace = psi(u_t, 1.0, 0.3) * x_bar;
[INFO] [stdout]     |     ------------------------------------ `e_trace` is overwritten here before the previous value is read
[INFO] [stdout]     |
[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]    --> examples/ganglia/src/synapse/eligibility.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn pre<TSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]     |                           ----^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/synapse/eligibility.rs:138:52
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn post<TSynapse, TNeuron>(mut parameters: States, mut external: States, _: Time) -> (States, States)
[INFO] [stdout]     |                                                    ----^^^^^^^^
[INFO] [stdout]     |                                                    |
[INFO] [stdout]     |                                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tau_x`
[INFO] [stdout]    --> examples/ganglia/src/synapse/eligibility.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let (x_bar, tau_x) = (
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_tau_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:75:25
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     let mut gaussian = Normal::new(0.0, 1.0 / { 256.0 }).unwrap();
[INFO] [stdout]    |                         ----^^^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |         eligibility: |(context, rng)| {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |         inhibitory: |(context, rng)| {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> examples/ganglia/src/learning.rs:62:23
[INFO] [stdout]    |
[INFO] [stdout] 62 |         excitatory: |(context, rng)| {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut config = config();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let mut sensory_generator = |i| { PoissonRate::new(NeuronId::default(), 25.0, SEED + (i as u64 * PERTURBATION)) };
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let mut target_generator = |toggle: usize| { toggle % 2 };
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut cam: NeuronGroup<GanglionicNeuron, 16> = NeuronGroup::generate(&mut neuron_generator);
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |     let mut ganglion1 = NeuronGroup::<GanglionicNeuron, { 256 + 16 }>::merge(sam, cam);
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut accumulated = 0.0;
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:122:33
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut neuron_generator = |i| {
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accumulated`
[INFO] [stdout]    --> examples/ganglia/src/learning.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let mut accumulated = 0.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accumulated`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0284`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ganglia` (bin "ganglia" test) due to 1 previous error; 57 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e", kill_on_drop: false }`
[INFO] [stdout] f2b8149a70776837f3fea318e3943fa5a9be9ef45df157de7ae0336f4fefee7e
