[INFO] cloning repository https://github.com/meronrudy/rustyspike
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/meronrudy/rustyspike" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeronrudy%2Frustyspike", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeronrudy%2Frustyspike'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 90393fa72e2f8d7cea32e673e8ef12bd6241dfc6
[INFO] checking meronrudy/rustyspike/90393fa72e2f8d7cea32e673e8ef12bd6241dfc6 against master#f8463896a9b36a04899c013bd8825a7fd29dd7a4 for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmeronrudy%2Frustyspike" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:   4% (1175/26425)
Updating files:   5% (1322/26425)
Updating files:   6% (1586/26425)
Updating files:   7% (1850/26425)
Updating files:   8% (2114/26425)
Updating files:   9% (2379/26425)
Updating files:  10% (2643/26425)
Updating files:  11% (2907/26425)
Updating files:  12% (3171/26425)
Updating files:  13% (3436/26425)
Updating files:  14% (3700/26425)
Updating files:  15% (3964/26425)
Updating files:  16% (4228/26425)
Updating files:  17% (4493/26425)
Updating files:  18% (4757/26425)
Updating files:  19% (5021/26425)
Updating files:  20% (5285/26425)
Updating files:  21% (5550/26425)
Updating files:  22% (5814/26425)
Updating files:  23% (6078/26425)
Updating files:  24% (6342/26425)
Updating files:  25% (6607/26425)
Updating files:  25% (6773/26425)
Updating files:  26% (6871/26425)
Updating files:  27% (7135/26425)
Updating files:  28% (7399/26425)
Updating files:  29% (7664/26425)
Updating files:  29% (7668/26425)
Updating files:  29% (7840/26425)
Updating files:  30% (7928/26425)
Updating files:  30% (8066/26425)
Updating files:  31% (8192/26425)
Updating files:  31% (8420/26425)
Updating files:  32% (8456/26425)
Updating files:  32% (8528/26425)
Updating files:  32% (8578/26425)
Updating files:  32% (8662/26425)
Updating files:  33% (8721/26425)
Updating files:  33% (8757/26425)
Updating files:  33% (8906/26425)
Updating files:  34% (8985/26425)
Updating files:  34% (9004/26425)
Updating files:  35% (9249/26425)
Updating files:  35% (9253/26425)
Updating files:  36% (9513/26425)
Updating files:  37% (9778/26425)
Updating files:  38% (10042/26425)
Updating files:  38% (10118/26425)
Updating files:  39% (10306/26425)
Updating files:  40% (10570/26425)
Updating files:  41% (10835/26425)
Updating files:  42% (11099/26425)
Updating files:  43% (11363/26425)
Updating files:  44% (11627/26425)
Updating files:  45% (11892/26425)
Updating files:  46% (12156/26425)
Updating files:  47% (12420/26425)
Updating files:  48% (12684/26425)
Updating files:  49% (12949/26425)
Updating files:  50% (13213/26425)
Updating files:  51% (13477/26425)
Updating files:  52% (13741/26425)
Updating files:  52% (14003/26425)
Updating files:  53% (14006/26425)
Updating files:  54% (14270/26425)
Updating files:  55% (14534/26425)
Updating files:  56% (14798/26425)
Updating files:  57% (15063/26425)
Updating files:  58% (15327/26425)
Updating files:  59% (15591/26425)
Updating files:  60% (15855/26425)
Updating files:  61% (16120/26425)
Updating files:  62% (16384/26425)
Updating files:  63% (16648/26425)
Updating files:  64% (16912/26425)
Updating files:  65% (17177/26425)
Updating files:  65% (17337/26425)
Updating files:  66% (17441/26425)
Updating files:  67% (17705/26425)
Updating files:  68% (17969/26425)
Updating files:  69% (18234/26425)
Updating files:  69% (18468/26425)
Updating files:  70% (18498/26425)
Updating files:  71% (18762/26425)
Updating files:  72% (19026/26425)
Updating files:  73% (19291/26425)
Updating files:  74% (19555/26425)
Updating files:  75% (19819/26425)
Updating files:  76% (20083/26425)
Updating files:  77% (20348/26425)
Updating files:  77% (20469/26425)
Updating files:  78% (20612/26425)
Updating files:  79% (20876/26425)
Updating files:  79% (21119/26425)
Updating files:  80% (21140/26425)
Updating files:  81% (21405/26425)
Updating files:  82% (21669/26425)
Updating files:  83% (21933/26425)
Updating files:  83% (22134/26425)
Updating files:  84% (22197/26425)
Updating files:  85% (22462/26425)
Updating files:  86% (22726/26425)
Updating files:  87% (22990/26425)
Updating files:  88% (23254/26425)
Updating files:  89% (23519/26425)
Updating files:  89% (23766/26425)
Updating files:  90% (23783/26425)
Updating files:  91% (24047/26425)
Updating files:  92% (24311/26425)
Updating files:  93% (24576/26425)
Updating files:  94% (24840/26425)
Updating files:  95% (25104/26425)
Updating files:  96% (25368/26425)
Updating files:  96% (25407/26425)
Updating files:  97% (25633/26425)
Updating files:  98% (25897/26425)
Updating files:  99% (26161/26425)
Updating files:  99% (26418/26425)
Updating files: 100% (26425/26425)
Updating files: 100% (26425/26425), done.
[INFO] removed /workspace/builds/worker-1-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/meronrudy/rustyspike
[INFO] finished tweaking git repo https://github.com/meronrudy/rustyspike
[INFO] tweaked toml for git repo https://github.com/meronrudy/rustyspike written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/meronrudy/rustyspike on toolchain f8463896a9b36a04899c013bd8825a7fd29dd7a4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/meronrudy/rustyspike 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" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded embedded-error-chain-macros v0.1.0
[INFO] [stderr]   Downloaded pyo3-macros v0.20.3
[INFO] [stderr]   Downloaded cxxbridge-flags v1.0.170
[INFO] [stderr]   Downloaded pyo3-build-config v0.20.3
[INFO] [stderr]   Downloaded embedded-error-chain v0.1.1
[INFO] [stderr]   Downloaded cl-sys v0.4.3
[INFO] [stderr]   Downloaded cxxbridge-macro v1.0.170
[INFO] [stderr]   Downloaded cxxbridge-cmd v1.0.170
[INFO] [stderr]   Downloaded cxx-build v1.0.170
[INFO] [stderr]   Downloaded cl3 v0.7.0
[INFO] [stderr]   Downloaded cudarc v0.9.15
[INFO] [stderr]   Downloaded pyo3-ffi v0.20.3
[INFO] [stderr]   Downloaded pyo3-macros-backend v0.20.3
[INFO] [stderr]   Downloaded cxx v1.0.170
[INFO] [stderr]   Downloaded opencl3 v0.7.0
[INFO] [stderr]   Downloaded pyo3 v0.20.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8a4451d3fdaba0f45128f5b878ae769fd9ab68de71f0e95ccea60423cb776be4
[INFO] running `Command { std: "docker" "start" "-a" "8a4451d3fdaba0f45128f5b878ae769fd9ab68de71f0e95ccea60423cb776be4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a4451d3fdaba0f45128f5b878ae769fd9ab68de71f0e95ccea60423cb776be4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a4451d3fdaba0f45128f5b878ae769fd9ab68de71f0e95ccea60423cb776be4", kill_on_drop: false }`
[INFO] [stdout] 8a4451d3fdaba0f45128f5b878ae769fd9ab68de71f0e95ccea60423cb776be4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c2db7a74755f7d2735113325889217e497b4fe308548d359ac6a9045c5672c3d
[INFO] running `Command { std: "docker" "start" "-a" "c2db7a74755f7d2735113325889217e497b4fe308548d359ac6a9045c5672c3d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.97
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling cc v1.2.33
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking twox-hash v2.1.1
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking memmap2 v0.9.7
[INFO] [stderr]     Checking lz4_flex v0.11.5
[INFO] [stderr]     Checking clap_builder v4.5.44
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking shnn-async-runtime v0.1.0 (/opt/rustwide/workdir/crates/shnn-async-runtime)
[INFO] [stderr]     Checking shnn-lockfree v0.1.0 (/opt/rustwide/workdir/crates/shnn-lockfree)
[INFO] [stdout] warning: unused import: `mem`
[INFO] [stdout]  --> crates/shnn-lockfree/src/epoch.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 |     ptr, mem,
[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: `AtomicU64`, `AtomicUsize`, `Context`, `Poll`, `Waker`, `mem::MaybeUninit`, `pin::Pin`, and `ptr`
[INFO] [stdout]   --> crates/shnn-async-runtime/src/lib.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pin::Pin,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     task::{Context, Poll, Waker},
[INFO] [stdout]    |            ^^^^^^^  ^^^^  ^^^^^
[INFO] [stdout] 44 |     sync::atomic::{AtomicBool, AtomicUsize, AtomicU64, Ordering},
[INFO] [stdout]    |                                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 45 |     mem::MaybeUninit,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     ptr,
[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: `boxed::Box`, `format`, and `string::String`
[INFO] [stdout]   --> crates/shnn-async-runtime/src/lib.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     boxed::Box,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     string::String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     format,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Condvar`, `Mutex`, `thread`, and `time::Instant`
[INFO] [stdout]   --> crates/shnn-async-runtime/src/lib.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     thread,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 61 |     sync::{Mutex, Condvar},
[INFO] [stdout]    |            ^^^^^  ^^^^^^^
[INFO] [stdout] 62 |     time::Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `boxed::Box`
[INFO] [stdout]  --> crates/shnn-async-runtime/src/scheduler.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use alloc::{vec::Vec, boxed::Box};
[INFO] [stdout]   |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `ptr::NonNull`
[INFO] [stdout]   --> crates/shnn-async-runtime/src/task.rs:9:31
[INFO] [stdout]    |
[INFO] [stdout]  9 |     sync::atomic::{AtomicU64, AtomicUsize, Ordering},
[INFO] [stdout]    |                               ^^^^^^^^^^^
[INFO] [stdout] 10 |     ptr::NonNull,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `waker::SHNNWaker`
[INFO] [stdout]   --> crates/shnn-async-runtime/src/task.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::{SpikeTime, waker::SHNNWaker};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `executor::Executor` and `task::Task`
[INFO] [stdout]  --> crates/shnn-async-runtime/src/runtime.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{SHNNRuntime, executor::Executor, task::Task};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]   --> crates/shnn-lockfree/src/epoch.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let current = LOCAL_EPOCH_COUNTER.fetch_add(1, Ordering::Acquire);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalEpoch` is never constructed
[INFO] [stdout]   --> crates/shnn-lockfree/src/epoch.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct LocalEpoch {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/shnn-lockfree/src/epoch.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl LocalEpoch {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 33 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GarbageList` is never constructed
[INFO] [stdout]   --> crates/shnn-lockfree/src/epoch.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | struct GarbageList {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GarbageItem` is never constructed
[INFO] [stdout]   --> crates/shnn-lockfree/src/epoch.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct GarbageItem {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add` are never used
[INFO] [stdout]   --> crates/shnn-lockfree/src/epoch.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl GarbageList {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 56 |     fn new(epoch: usize) -> Box<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn add<T>(&mut self, ptr: *mut T) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `destroy_box` is never used
[INFO] [stdout]   --> crates/shnn-lockfree/src/epoch.rs:72:11
[INFO] [stdout]    |
[INFO] [stdout] 72 | unsafe fn destroy_box<T>(ptr: *mut u8) {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking shnn-math v0.1.0 (/opt/rustwide/workdir/crates/shnn-math)
[INFO] [stdout] warning: unused variable: `worker_id`
[INFO] [stdout]    --> crates/shnn-async-runtime/src/executor.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 |     worker_id: usize,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_worker_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> crates/shnn-async-runtime/src/executor.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |     let start_time = SpikeTime::from_nanos(0); // TODO: Get actual time
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `priority`
[INFO] [stdout]    --> crates/shnn-async-runtime/src/task.rs:171:30
[INFO] [stdout]     |
[INFO] [stdout] 171 |     pub fn new<F>(future: F, priority: TaskPriority) -> Self
[INFO] [stdout]     |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_priority`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spike_queue` is never read
[INFO] [stdout]    --> crates/shnn-async-runtime/src/lib.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct SHNNRuntime {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 151 |     spike_queue: SpikeEventQueue,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capacity` is never read
[INFO] [stdout]   --> crates/shnn-async-runtime/src/lock_free.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct SpikeEventQueue {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capacity` is never read
[INFO] [stdout]    --> crates/shnn-async-runtime/src/lock_free.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct LockFreeQueue<T> {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 130 |     capacity: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capacity` is never read
[INFO] [stdout]    --> crates/shnn-async-runtime/src/lock_free.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct StealQueue<T> {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 220 |     capacity: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `affinity` and `shutdown` are never read
[INFO] [stdout]    --> crates/shnn-async-runtime/src/executor.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct WorkerThread {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 195 |     id: usize,
[INFO] [stdout] 196 |     affinity: bool,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 197 |     shutdown: Arc<AtomicBool>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `worker_thread_main` is never used
[INFO] [stdout]    --> crates/shnn-async-runtime/src/executor.rs:221:11
[INFO] [stdout]     |
[INFO] [stdout] 221 | unsafe fn worker_thread_main(
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_task` is never used
[INFO] [stdout]    --> crates/shnn-async-runtime/src/executor.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn execute_task(task: &mut dyn SchedulableTask, stats: &ExecutorStats) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `park_worker` is never used
[INFO] [stdout]    --> crates/shnn-async-runtime/src/executor.rs:314:4
[INFO] [stdout]     |
[INFO] [stdout] 314 | fn park_worker(parker: &Arc<(std::sync::Mutex<bool>, Condvar)>, timeout: Duration) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_tick` is never read
[INFO] [stdout]   --> crates/shnn-async-runtime/src/timer.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct PrecisionTimer {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     current_tick: AtomicU64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> crates/shnn-async-runtime/src/timer.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 277 | struct Timeout {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] 278 |     id: TimeoutId,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sender` and `receiver` are never read
[INFO] [stdout]   --> crates/shnn-async-runtime/src/sync.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Channel<T> {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 13 |     sender: Sender<T>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 14 |     receiver: Receiver<T>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Mul`, and `Sub`
[INFO] [stdout]  --> crates/shnn-math/src/sparse.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use core::ops::{Add, Sub, Mul};
[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: `std::collections::HashMap`
[INFO] [stdout]   --> crates/shnn-math/src/sparse.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FloatMath`
[INFO] [stdout]  --> crates/shnn-math/src/approx.rs:6:47
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{Float, constants::EPSILON, math::{FloatMath, MathExt}};
[INFO] [stdout]   |                                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::MathExt`
[INFO] [stdout]  --> crates/shnn-math/src/vector.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::math::MathExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::MathExt`
[INFO] [stdout]  --> crates/shnn-math/src/stats.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::math::MathExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::MathExt`
[INFO] [stdout]  --> crates/shnn-math/src/matrix.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::math::MathExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::MathExt`
[INFO] [stdout]  --> crates/shnn-math/src/activation.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::math::MathExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MathExt`
[INFO] [stdout]  --> crates/shnn-math/src/approx.rs:6:58
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{Float, constants::EPSILON, math::{FloatMath, MathExt}};
[INFO] [stdout]   |                                                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> crates/shnn-math/src/activation.rs:324:26
[INFO] [stdout]     |
[INFO] [stdout] 324 |     fn derivative(&self, x: Float) -> Float {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking shnn-serialize v0.1.0 (/opt/rustwide/workdir/crates/shnn-serialize)
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stdout] warning: unused import: `string::String`
[INFO] [stdout]   --> crates/shnn-serialize/src/neural.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::{vec::Vec, string::String};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking tempfile v3.20.0
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> crates/shnn-serialize/src/lib.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub const VERSION_1: u8 = 1;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> crates/shnn-serialize/src/lib.rs:7:9
[INFO] [stdout]     |
[INFO] [stdout]   7 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> crates/shnn-serialize/src/proto.rs:324:5
[INFO] [stdout]     |
[INFO] [stdout] 324 |     pub neuron_id: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> crates/shnn-serialize/src/proto.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub timestamp: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> crates/shnn-serialize/src/proto.rs:326:5
[INFO] [stdout]     |
[INFO] [stdout] 326 |     pub spike_data: Vec<u8>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> crates/shnn-serialize/src/proto.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 327 |     pub layer_name: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]    Compiling zstd-sys v2.0.15+zstd.1.5.7
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rusty-fork v0.3.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking unicode-width v0.2.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking proptest v1.7.0
[INFO] [stderr]     Checking indexmap v2.11.0
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling os_str_bytes v6.6.1
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling cbindgen v0.26.0
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]     Checking shell-words v1.1.0
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]    Compiling clap v3.2.25
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking shnn-ir v0.1.0 (/opt/rustwide/workdir/crates/shnn-ir)
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Bool(bool),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:2:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     I64(i64),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     F32(f32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     String(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     TimeNs(u64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     DurationNs(u64),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     VoltageMv(f32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ResistanceMohm(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     CapacitanceNf(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     CurrentNa(f32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     RateHz(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     Weight(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     RangeU32 { start: u32, end: u32 }, // inclusive start..end
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |     RangeU32 { start: u32, end: u32 }, // inclusive start..end
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:81:28
[INFO] [stdout]    |
[INFO] [stdout] 81 |     RangeU32 { start: u32, end: u32 }, // inclusive start..end
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     NeuronRef(u32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking dialoguer v0.11.0
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]     Checking normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling assert_cmd v2.0.17
[INFO] [stderr]     Checking clap v4.5.45
[INFO] [stderr]     Checking difflib v0.4.0
[INFO] [stderr]     Checking termtree v0.5.1
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking clap_complete v4.5.57
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking bstr v1.12.0
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stdout] error[E0432]: unresolved imports `shnn_serialize::endian::LittleEndian`, `shnn_serialize::endian::BigEndian`, `shnn_serialize::endian::NetworkEndian`, `shnn_serialize::utils::calculate_size`, `shnn_serialize::utils::align_to`, `shnn_serialize::utils::padding_needed`
[INFO] [stdout]   --> crates/shnn-serialize/tests/serialize_tests.rs:9:14
[INFO] [stdout]    |
[INFO] [stdout]  9 |     endian::{LittleEndian, BigEndian, NetworkEndian},
[INFO] [stdout]    |              ^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^ no `NetworkEndian` in `endian`
[INFO] [stdout]    |              |             |
[INFO] [stdout]    |              |             no `BigEndian` in `endian`
[INFO] [stdout]    |              no `LittleEndian` in `endian`
[INFO] [stdout] 10 |     utils::{calculate_size, align_to, padding_needed},
[INFO] [stdout]    |             ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^ no `padding_needed` in `utils`
[INFO] [stdout]    |             |               |
[INFO] [stdout]    |             |               no `align_to` in `utils`
[INFO] [stdout]    |             no `calculate_size` in `utils`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:101:6
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Deserialize for TestStruct {
[INFO] [stdout]     |      ^^^^^^^^^^^ expected lifetime parameter
[INFO] [stdout]     |
[INFO] [stdout] help: indicate the anonymous lifetime
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Deserialize<'_> for TestStruct {
[INFO] [stdout]     |                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0726]: implicit elided lifetime not allowed here
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:510:10
[INFO] [stdout]     |
[INFO] [stdout] 510 |     impl Deserialize for AlignedStruct {
[INFO] [stdout]     |          ^^^^^^^^^^^ expected lifetime parameter
[INFO] [stdout]     |
[INFO] [stdout] help: indicate the anonymous lifetime
[INFO] [stdout]     |
[INFO] [stdout] 510 |     impl Deserialize<'_> for AlignedStruct {
[INFO] [stdout]     |                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `BufferMut`
[INFO] [stdout]   --> crates/shnn-serialize/tests/serialize_tests.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn serialize<W: BufferMut>(&self, encoder: &mut BinaryEncoder<W>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                     ^^^^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `Buffer`
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:102:23
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn deserialize<R: Buffer>(decoder: &mut BinaryDecoder<R>) -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                       ^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `BufferMut`
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:497:25
[INFO] [stdout]     |
[INFO] [stdout] 497 |         fn serialize<W: BufferMut>(&self, encoder: &mut BinaryEncoder<W>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0404]: expected trait, found struct `Buffer`
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:511:27
[INFO] [stdout]     |
[INFO] [stdout] 511 |         fn deserialize<R: Buffer>(decoder: &mut BinaryDecoder<R>) -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                           ^^^^^^ not a trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem`
[INFO] [stdout]   --> crates/shnn-serialize/tests/serialize_tests.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{collections::HashMap, mem};
[INFO] [stdout]    |                                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0049]: method `serialize` has 1 type parameter but its trait declaration has 0 type parameters
[INFO] [stdout]   --> crates/shnn-serialize/tests/serialize_tests.rs:92:18
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn serialize<W: BufferMut>(&self, encoder: &mut BinaryEncoder<W>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                  ^ found 1 type parameter
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/shnn-serialize/src/traits.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn serialize(&self, buffer: &mut [u8]) -> Result<usize>;
[INFO] [stdout]    |     -------------------------------------------------------- expected 0 type parameters
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `serialized_size`
[INFO] [stdout]   --> crates/shnn-serialize/tests/serialize_tests.rs:91:1
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl Serialize for TestStruct {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `serialized_size` in implementation
[INFO] [stdout]    |
[INFO] [stdout]    = help: implement the missing item: `fn serialized_size(&self) -> usize { todo!() }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0049]: method `serialize` has 1 type parameter but its trait declaration has 0 type parameters
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:497:22
[INFO] [stdout]     |
[INFO] [stdout] 497 |         fn serialize<W: BufferMut>(&self, encoder: &mut BinaryEncoder<W>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                      ^ found 1 type parameter
[INFO] [stdout]     |
[INFO] [stdout]    ::: crates/shnn-serialize/src/traits.rs:11:5
[INFO] [stdout]     |
[INFO] [stdout]  11 |     fn serialize(&self, buffer: &mut [u8]) -> Result<usize>;
[INFO] [stdout]     |     -------------------------------------------------------- expected 0 type parameters
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `serialized_size`
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:496:5
[INFO] [stdout]     |
[INFO] [stdout] 496 |     impl Serialize for AlignedStruct {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `serialized_size` in implementation
[INFO] [stdout]     |
[INFO] [stdout]     = help: implement the missing item: `fn serialized_size(&self) -> usize { todo!() }`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> crates/shnn-serialize/tests/serialize_tests.rs:92:53
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn serialize<W: BufferMut>(&self, encoder: &mut BinaryEncoder<W>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^ - help: remove the unnecessary generic argument
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     expected 0 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]   --> crates/shnn-serialize/src/binary.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct BinaryEncoder<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:102:45
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn deserialize<R: Buffer>(decoder: &mut BinaryDecoder<R>) -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^ - help: remove the unnecessary generic argument
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]    --> crates/shnn-serialize/src/binary.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct BinaryDecoder<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:497:57
[INFO] [stdout]     |
[INFO] [stdout] 497 |         fn serialize<W: BufferMut>(&self, encoder: &mut BinaryEncoder<W>) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^^ - help: remove the unnecessary generic argument
[INFO] [stdout]     |                                                         |
[INFO] [stdout]     |                                                         expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]    --> crates/shnn-serialize/src/binary.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | pub struct BinaryEncoder<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 0 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> crates/shnn-serialize/tests/serialize_tests.rs:511:49
[INFO] [stdout]     |
[INFO] [stdout] 511 |         fn deserialize<R: Buffer>(decoder: &mut BinaryDecoder<R>) -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^ - help: remove the unnecessary generic argument
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 0 generic parameters
[INFO] [stdout]    --> crates/shnn-serialize/src/binary.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct BinaryDecoder<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0049, E0107, E0404, E0432, E0726.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `shnn_math::math::safe_divide`, `shnn_math::linalg`
[INFO] [stdout]   --> crates/shnn-math/tests/math_tests.rs:9:83
[INFO] [stdout]    |
[INFO] [stdout]  9 |     math::{FloatMath, exp_approx, ln_approx, sqrt_approx, sin_approx, cos_approx, safe_divide},
[INFO] [stdout]    |                                                                                   ^^^^^^^^^^^ no `safe_divide` in `math`
[INFO] [stdout] 10 |     linalg::{dot_product, matrix_multiply, vector_add, vector_subtract, vector_scale},
[INFO] [stdout]    |     ^^^^^^ could not find `linalg` in `shnn_math`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `shnn-serialize` (test "serialize_tests") due to 15 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Bool(bool),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:2:9
[INFO] [stdout]    |
[INFO] [stdout]  2 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     I64(i64),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     F32(f32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     String(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     TimeNs(u64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     DurationNs(u64),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     VoltageMv(f32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ResistanceMohm(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     CapacitanceNf(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     CurrentNa(f32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     RateHz(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     Weight(f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     RangeU32 { start: u32, end: u32 }, // inclusive start..end
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |     RangeU32 { start: u32, end: u32 }, // inclusive start..end
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:81:28
[INFO] [stdout]    |
[INFO] [stdout] 81 |     RangeU32 { start: u32, end: u32 }, // inclusive start..end
[INFO] [stdout]    |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> crates/shnn-ir/src/lib.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     NeuronRef(u32),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `filled` found for struct `shnn_math::Vector` in the current scope
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:54:26
[INFO] [stdout]     |
[INFO] [stdout]  54 |     let filled = Vector::filled(4, 2.5);
[INFO] [stdout]     |                          ^^^^^^ function or associated item not found in `shnn_math::Vector`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `shnn_math::Vector` consider using one of the following associated functions:
[INFO] [stdout]       shnn_math::Vector::zeros
[INFO] [stdout]       shnn_math::Vector::ones
[INFO] [stdout]       shnn_math::Vector::from_vec
[INFO] [stdout]       shnn_math::Vector::from_slice
[INFO] [stdout]    --> crates/shnn-math/src/vector.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout]  28 |     pub fn zeros(length: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     pub fn ones(length: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn from_vec(data: Vec<Float>) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn from_slice(data: &[Float]) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: there is a method `fill` with a similar name, but with different arguments
[INFO] [stdout]    --> crates/shnn-math/src/vector.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 230 |     pub fn fill(&mut self, value: Float) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_rows` found for struct `Matrix` in the current scope
[INFO] [stdout]   --> crates/shnn-math/tests/math_tests.rs:67:22
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let m1 = Matrix::from_rows(&[
[INFO] [stdout]    |                      ^^^^^^^^^ function or associated item not found in `Matrix`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `Matrix` consider using one of the following associated functions:
[INFO] [stdout]       Matrix::zeros
[INFO] [stdout]       Matrix::ones
[INFO] [stdout]       Matrix::identity
[INFO] [stdout]       Matrix::from_vec
[INFO] [stdout]       Matrix::from_nested_vec
[INFO] [stdout]   --> crates/shnn-math/src/matrix.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn zeros(rows: usize, cols: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn ones(rows: usize, cols: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn identity(size: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn from_vec(data: Vec<Float>, rows: usize, cols: usize) -> Result<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn from_nested_vec(data: Vec<Vec<Float>>) -> Result<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_rows` found for struct `Matrix` in the current scope
[INFO] [stdout]   --> crates/shnn-math/tests/math_tests.rs:72:22
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let m2 = Matrix::from_rows(&[
[INFO] [stdout]    |                      ^^^^^^^^^ function or associated item not found in `Matrix`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `Matrix` consider using one of the following associated functions:
[INFO] [stdout]       Matrix::zeros
[INFO] [stdout]       Matrix::ones
[INFO] [stdout]       Matrix::identity
[INFO] [stdout]       Matrix::from_vec
[INFO] [stdout]       Matrix::from_nested_vec
[INFO] [stdout]   --> crates/shnn-math/src/matrix.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn zeros(rows: usize, cols: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn ones(rows: usize, cols: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn identity(size: usize) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn from_vec(data: Vec<Float>, rows: usize, cols: usize) -> Result<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn from_nested_vec(data: Vec<Vec<Float>>) -> Result<Self> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> crates/shnn-math/tests/math_tests.rs:98:41
[INFO] [stdout]    |
[INFO] [stdout] 98 |             assert_eq!(zeros.get(i, j), 0.0);
[INFO] [stdout]    |                                         ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]               found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]    |
[INFO] [stdout] 98 |             assert_eq!(zeros.get(i, j), Ok(0.0));
[INFO] [stdout]    |                                         +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:109:48
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 assert_eq!(identity.get(i, j), 1.0);
[INFO] [stdout]     |                                                ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 assert_eq!(identity.get(i, j), Ok(1.0));
[INFO] [stdout]     |                                                +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:111:48
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 assert_eq!(identity.get(i, j), 0.0);
[INFO] [stdout]     |                                                ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 assert_eq!(identity.get(i, j), Ok(0.0));
[INFO] [stdout]     |                                                +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `filled` found for struct `Matrix` in the current scope
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:117:26
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let filled = Matrix::filled(2, 3, 5.0);
[INFO] [stdout]     |                          ^^^^^^ function or associated item not found in `Matrix`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Matrix` consider using one of the following associated functions:
[INFO] [stdout]       Matrix::zeros
[INFO] [stdout]       Matrix::ones
[INFO] [stdout]       Matrix::identity
[INFO] [stdout]       Matrix::from_vec
[INFO] [stdout]       Matrix::from_nested_vec
[INFO] [stdout]    --> crates/shnn-math/src/matrix.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     pub fn zeros(rows: usize, cols: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn ones(rows: usize, cols: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn identity(size: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn from_vec(data: Vec<Float>, rows: usize, cols: usize) -> Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn from_nested_vec(data: Vec<Vec<Float>>) -> Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: there is a method `fill` with a similar name, but with different arguments
[INFO] [stdout]    --> crates/shnn-math/src/matrix.rs:271:5
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn fill(&mut self, value: Float) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:138:34
[INFO] [stdout]     |
[INFO] [stdout] 138 |     assert_eq!(sparse.get(0, 0), 1.0);
[INFO] [stdout]     |                                  ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     assert_eq!(sparse.get(0, 0), Ok(1.0));
[INFO] [stdout]     |                                  +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:139:34
[INFO] [stdout]     |
[INFO] [stdout] 139 |     assert_eq!(sparse.get(1, 2), 2.0);
[INFO] [stdout]     |                                  ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 139 |     assert_eq!(sparse.get(1, 2), Ok(2.0));
[INFO] [stdout]     |                                  +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:140:34
[INFO] [stdout]     |
[INFO] [stdout] 140 |     assert_eq!(sparse.get(2, 1), 3.0);
[INFO] [stdout]     |                                  ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 140 |     assert_eq!(sparse.get(2, 1), Ok(3.0));
[INFO] [stdout]     |                                  +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:141:34
[INFO] [stdout]     |
[INFO] [stdout] 141 |     assert_eq!(sparse.get(0, 1), 0.0); // Default value
[INFO] [stdout]     |                                  ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     assert_eq!(sparse.get(0, 1), Ok(0.0)); // Default value
[INFO] [stdout]     |                                  +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `rows` found for struct `SparseMatrix` in the current scope
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |     assert_eq!(sparse_with_cap.rows(), 4);
[INFO] [stdout]     |                                ^^^^ private field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `cols` found for struct `SparseMatrix` in the current scope
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |     assert_eq!(sparse_with_cap.cols(), 4);
[INFO] [stdout]     |                                ^^^^ private field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 |     assert_eq!(leaky_relu(2.0, 0.1), 2.0);
[INFO] [stdout]     |                ^^^^^^^^^^      --- unexpected argument #2 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> crates/shnn-math/src/activation.rs:344:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub fn leaky_relu(x: Float) -> Float {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 174 -     assert_eq!(leaky_relu(2.0, 0.1), 2.0);
[INFO] [stdout] 174 +     assert_eq!(leaky_relu(2.0), 2.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:175:14
[INFO] [stdout]     |
[INFO] [stdout] 175 |     assert!((leaky_relu(-1.0, 0.1) - (-0.1)).abs() < EPSILON);
[INFO] [stdout]     |              ^^^^^^^^^^       --- unexpected argument #2 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> crates/shnn-math/src/activation.rs:344:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub fn leaky_relu(x: Float) -> Float {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 175 -     assert!((leaky_relu(-1.0, 0.1) - (-0.1)).abs() < EPSILON);
[INFO] [stdout] 175 +     assert!((leaky_relu(-1.0) - (-0.1)).abs() < EPSILON);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 |     assert_eq!(leaky_relu(0.0, 0.1), 0.0);
[INFO] [stdout]     |                ^^^^^^^^^^      --- unexpected argument #2 of type `{float}`
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> crates/shnn-math/src/activation.rs:344:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub fn leaky_relu(x: Float) -> Float {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 176 -     assert_eq!(leaky_relu(0.0, 0.1), 0.0);
[INFO] [stdout] 176 +     assert_eq!(leaky_relu(0.0), 0.0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:183:26
[INFO] [stdout]     |
[INFO] [stdout] 183 |     let result = softmax(&input);
[INFO] [stdout]     |                  ------- ^^^^^^ types differ in mutability
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected mutable reference `&mut [f32]`
[INFO] [stdout]                        found reference `&Vec<{float}>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> crates/shnn-math/src/activation.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 377 | pub fn softmax(values: &mut [Float]) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `iter` found for unit type `()` in the current scope
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:186:27
[INFO] [stdout]     |
[INFO] [stdout] 186 |     let sum: f32 = result.iter().sum();
[INFO] [stdout]     |                           ^^^^ method not found in `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `iter` found for unit type `()` in the current scope
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:190:20
[INFO] [stdout]     |
[INFO] [stdout] 190 |     assert!(result.iter().all(|&x| x > 0.0));
[INFO] [stdout]     |                    ^^^^ method not found in `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `()`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:193:19
[INFO] [stdout]     |
[INFO] [stdout] 193 |     assert!(result[2] > result[1]);
[INFO] [stdout]     |                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: tuples are indexed with a dot and a literal index: `tuple.0`, `tuple.1`, etc.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `()`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:193:31
[INFO] [stdout]     |
[INFO] [stdout] 193 |     assert!(result[2] > result[1]);
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: tuples are indexed with a dot and a literal index: `tuple.0`, `tuple.1`, etc.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `()`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |     assert!(result[1] > result[0]);
[INFO] [stdout]     |                   ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: tuples are indexed with a dot and a literal index: `tuple.0`, `tuple.1`, etc.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `()`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:194:31
[INFO] [stdout]     |
[INFO] [stdout] 194 |     assert!(result[1] > result[0]);
[INFO] [stdout]     |                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: tuples are indexed with a dot and a literal index: `tuple.0`, `tuple.1`, etc.
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `{float}` from `Result<f32, MathError>`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:298:19
[INFO] [stdout]     |
[INFO] [stdout] 298 |     assert!((corr - 1.0).abs() < EPSILON, "Perfect positive correlation should be 1.0, got {}", corr);
[INFO] [stdout]     |              ---- ^ --- {float}
[INFO] [stdout]     |              |
[INFO] [stdout]     |              Result<f32, MathError>
[INFO] [stdout]     |
[INFO] [stdout] note: `Result<f32, MathError>` does not implement `Sub<{float}>`
[INFO] [stdout]    --> /rustc/f8463896a9b36a04899c013bd8825a7fd29dd7a4/library/core/src/result.rs:557:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Result<f32, MathError>` is defined in another crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Result<f32, MathError>` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:298:97
[INFO] [stdout]     |
[INFO] [stdout] 298 |     assert!((corr - 1.0).abs() < EPSILON, "Perfect positive correlation should be 1.0, got {}", corr);
[INFO] [stdout]     |                                                                                            --   ^^^^ `Result<f32, MathError>` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                                                            |
[INFO] [stdout]     |                                                                                            required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::fmt::Display` is not implemented for `Result<f32, MathError>`
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: cannot subtract `{float}` from `Result<f32, MathError>`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:303:23
[INFO] [stdout]     |
[INFO] [stdout] 303 |     assert!((corr_neg - (-1.0)).abs() < EPSILON, "Perfect negative correlation should be -1.0, got {}", corr_neg);
[INFO] [stdout]     |              -------- ^ ------ {float}
[INFO] [stdout]     |              |
[INFO] [stdout]     |              Result<f32, MathError>
[INFO] [stdout]     |
[INFO] [stdout] note: `Result<f32, MathError>` does not implement `Sub<{float}>`
[INFO] [stdout]    --> /rustc/f8463896a9b36a04899c013bd8825a7fd29dd7a4/library/core/src/result.rs:557:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Result<f32, MathError>` is defined in another crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Result<f32, MathError>` doesn't implement `std::fmt::Display`
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:303:105
[INFO] [stdout]     |
[INFO] [stdout] 303 |     assert!((corr_neg - (-1.0)).abs() < EPSILON, "Perfect negative correlation should be -1.0, got {}", corr_neg);
[INFO] [stdout]     |                                                                                                    --   ^^^^^^^^ `Result<f32, MathError>` cannot be formatted with the default formatter
[INFO] [stdout]     |                                                                                                    |
[INFO] [stdout]     |                                                                                                    required by this formatting parameter
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `std::fmt::Display` is not implemented for `Result<f32, MathError>`
[INFO] [stdout]     = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `from_rows` found for struct `Matrix` in the current scope
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:368:26
[INFO] [stdout]     |
[INFO] [stdout] 368 |     let matrix = Matrix::from_rows(&[
[INFO] [stdout]     |                          ^^^^^^^^^ function or associated item not found in `Matrix`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `Matrix` consider using one of the following associated functions:
[INFO] [stdout]       Matrix::zeros
[INFO] [stdout]       Matrix::ones
[INFO] [stdout]       Matrix::identity
[INFO] [stdout]       Matrix::from_vec
[INFO] [stdout]       Matrix::from_nested_vec
[INFO] [stdout]    --> crates/shnn-math/src/matrix.rs:30:5
[INFO] [stdout]     |
[INFO] [stdout]  30 |     pub fn zeros(rows: usize, cols: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn ones(rows: usize, cols: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn identity(size: usize) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn from_vec(data: Vec<Float>, rows: usize, cols: usize) -> Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn from_nested_vec(data: Vec<Vec<Float>>) -> Result<Self> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:398:36
[INFO] [stdout]     |
[INFO] [stdout] 398 |     assert_eq!(sparse.get(0, 999), 1.0);
[INFO] [stdout]     |                                    ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 398 |     assert_eq!(sparse.get(0, 999), Ok(1.0));
[INFO] [stdout]     |                                    +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:399:38
[INFO] [stdout]     |
[INFO] [stdout] 399 |     assert_eq!(sparse.get(500, 500), 2.0);
[INFO] [stdout]     |                                      ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 399 |     assert_eq!(sparse.get(500, 500), Ok(2.0));
[INFO] [stdout]     |                                      +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:400:36
[INFO] [stdout]     |
[INFO] [stdout] 400 |     assert_eq!(sparse.get(999, 0), 3.0);
[INFO] [stdout]     |                                    ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 400 |     assert_eq!(sparse.get(999, 0), Ok(3.0));
[INFO] [stdout]     |                                    +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> crates/shnn-math/tests/math_tests.rs:401:38
[INFO] [stdout]     |
[INFO] [stdout] 401 |     assert_eq!(sparse.get(100, 100), 0.0);
[INFO] [stdout]     |                                      ^^^ expected `Result<f32, MathError>`, found floating-point number
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<f32, MathError>`
[INFO] [stdout]                found type `{float}`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 401 |     assert_eq!(sparse.get(100, 100), Ok(0.0));
[INFO] [stdout]     |                                      +++   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0369, E0432, E0599, E0608.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `shnn-math` (test "math_tests") due to 33 previous errors
[INFO] running `Command { std: "docker" "inspect" "c2db7a74755f7d2735113325889217e497b4fe308548d359ac6a9045c5672c3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2db7a74755f7d2735113325889217e497b4fe308548d359ac6a9045c5672c3d", kill_on_drop: false }`
[INFO] [stdout] c2db7a74755f7d2735113325889217e497b4fe308548d359ac6a9045c5672c3d
