[INFO] cloning repository https://github.com/zetareticula/scann
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zetareticula/scann" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzetareticula%2Fscann", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzetareticula%2Fscann'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e099e56a0ce4235b9b50ae29476cc58e3ee7b50b
[INFO] testing zetareticula/scann against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzetareticula%2Fscann" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zetareticula/scann
[INFO] finished tweaking git repo https://github.com/zetareticula/scann
[INFO] tweaked toml for git repo https://github.com/zetareticula/scann written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zetareticula/scann on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zetareticula/scann 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded safetensors v0.3.3
[INFO] [stderr]   Downloaded torch-sys v0.14.0
[INFO] [stderr]   Downloaded nalgebra v0.32.6
[INFO] [stderr]   Downloaded tch v0.14.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f79d97b986293996798085c292bcfc70e1ca91ea0391d91a8e1fa94e07085ce9
[INFO] running `Command { std: "docker" "start" "-a" "f79d97b986293996798085c292bcfc70e1ca91ea0391d91a8e1fa94e07085ce9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f79d97b986293996798085c292bcfc70e1ca91ea0391d91a8e1fa94e07085ce9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f79d97b986293996798085c292bcfc70e1ca91ea0391d91a8e1fa94e07085ce9", kill_on_drop: false }`
[INFO] [stdout] f79d97b986293996798085c292bcfc70e1ca91ea0391d91a8e1fa94e07085ce9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 238a575365801d82e83939cc29c48c509536903133527614a4b9bd7ab70a3462
[INFO] running `Command { std: "docker" "start" "-a" "238a575365801d82e83939cc29c48c509536903133527614a4b9bd7ab70a3462", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling bytemuck v1.23.1
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling simba v0.8.1
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling prost v0.12.6
[INFO] [stderr]    Compiling nalgebra v0.32.6
[INFO] [stderr]    Compiling scann v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0583]: file not found for module `trees`
[INFO] [stdout]   --> src/lib.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub mod trees;
[INFO] [stdout]    | ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: to create the module `trees`, create file "src/trees.rs" or "src/trees/mod.rs"
[INFO] [stdout]    = note: if there is a `mod trees` elsewhere in the crate already, import it with `use crate::...` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0428]: the name `CosineDistance` is defined multiple times
[INFO] [stdout]   --> src/distance_measures.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct CosineDistance;
[INFO] [stdout]    | -------------------------- previous definition of the type `CosineDistance` here
[INFO] [stdout] ...
[INFO] [stdout] 52 |         pub struct $name;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ `CosineDistance` redefined here
[INFO] [stdout] ...
[INFO] [stdout] 83 | define_distance_measure!(CosineDistance);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CosineDistance` must be defined only once in the type namespace of this module
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::utils`
[INFO] [stdout]   --> src/distance_measures.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::{proto, utils, ScannError};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    no `utils` in the root
[INFO] [stdout]    |                    help: a similar name exists in the module: `util`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `super::failed_precondition_error`, `super::invalid_argument_error`, `super::utils`
[INFO] [stdout]   --> src/projection.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::{failed_precondition_error, invalid_argument_error, proto, utils, ScannError};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^         ^^^^^
[INFO] [stdout]    |             |                          |                              |
[INFO] [stdout]    |             |                          |                              no `utils` in the root
[INFO] [stdout]    |             |                          |                              help: a similar name exists in the module: `util`
[INFO] [stdout]    |             |                          no `invalid_argument_error` in the root
[INFO] [stdout]    |             no `failed_precondition_error` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::utils`
[INFO] [stdout]   --> src/retrieval.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::{distance_measures, proto, utils, ScannError};
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       no `utils` in the root
[INFO] [stdout]    |                                       help: a similar name exists in the module: `util`
[INFO] [stdout]    |
[INFO] [stdout]    = note: unresolved item `crate::projection::pca_utils::utils` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::utils`
[INFO] [stdout]   --> src/retro/attention.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use super::utils;
[INFO] [stdout]    |     ^^^^^^^^^^^^ no `utils` in `retro`
[INFO] [stdout]    |
[INFO] [stdout]    = note: unresolved item `crate::projection::pca_utils::utils` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/retro/embeddings.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use rand::distributions::{Distribution, Normal};
[INFO] [stdout]    |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::utils`
[INFO] [stdout]   --> src/retro/decoder.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use super::{attention, encoder, utils};
[INFO] [stdout]    |                                 ^^^^^ no `utils` in `retro`
[INFO] [stdout]    |
[INFO] [stdout]    = note: unresolved item `crate::projection::pca_utils::utils` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::utils`
[INFO] [stdout]   --> src/retro/encoder.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | use super::{attention, utils};
[INFO] [stdout]    |                        ^^^^^ no `utils` in `retro`
[INFO] [stdout]    |
[INFO] [stdout]    = note: unresolved item `crate::projection::pca_utils::utils` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `super::utils`
[INFO] [stdout]   --> src/retro/model.rs:20:43
[INFO] [stdout]    |
[INFO] [stdout] 20 | use super::{decoder, embeddings, encoder, utils};
[INFO] [stdout]    |                                           ^^^^^ no `utils` in `retro`
[INFO] [stdout]    |
[INFO] [stdout]    = note: unresolved item `crate::projection::pca_utils::utils` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `utils`
[INFO] [stdout]   --> src/lib.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub use utils::{DenseDataset, DatapointPtr, ScannError};
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `utils`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 34 - pub use utils::{DenseDataset, DatapointPtr, ScannError};
[INFO] [stdout] 34 + pub use util::{DenseDataset, DatapointPtr, ScannError};
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `ngalgebra`
[INFO] [stdout]   --> src/distance_measures.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use ngalgebra::{DVector, Vector};
[INFO] [stdout]    |     ^^^^^^^^^ use of unresolved module or unlinked crate `ngalgebra`
[INFO] [stdout]    |
[INFO] [stdout] help: there is a crate or module with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 19 - use ngalgebra::{DVector, Vector};
[INFO] [stdout] 19 + use nalgebra::{DVector, Vector};
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:50:72
[INFO] [stdout]    |
[INFO] [stdout] 50 |     add_if_exists(&mut assets, artifacts_dir, "ah_codebook.pb", proto::AssetType::AhCenters);
[INFO] [stdout]    |                                                                        ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:51:83
[INFO] [stdout]    |
[INFO] [stdout] 51 |     add_if_exists(&mut assets, artifacts_dir, "serialized_partitioner.pb", proto::AssetType::Partitioner);
[INFO] [stdout]    |                                                                                   ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:52:80
[INFO] [stdout]    |
[INFO] [stdout] 52 |     add_if_exists(&mut assets, artifacts_dir, "datapoint_to_token.npy", proto::AssetType::TokenizationNpy);
[INFO] [stdout]    |                                                                                ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:53:76
[INFO] [stdout]    |
[INFO] [stdout] 53 |     add_if_exists(&mut assets, artifacts_dir, "hashed_dataset.npy", proto::AssetType::AhDatasetNpy);
[INFO] [stdout]    |                                                                            ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:54:74
[INFO] [stdout]    |
[INFO] [stdout] 54 |     add_if_exists(&mut assets, artifacts_dir, "int8_dataset.npy", proto::AssetType::Int8DatasetNpy);
[INFO] [stdout]    |                                                                          ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:55:78
[INFO] [stdout]    |
[INFO] [stdout] 55 |     add_if_exists(&mut assets, artifacts_dir, "int8_multipliers.npy", proto::AssetType::Int8MultipliersNpy);
[INFO] [stdout]    |                                                                              ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:56:70
[INFO] [stdout]    |
[INFO] [stdout] 56 |     add_if_exists(&mut assets, artifacts_dir, "dp_norms.npy", proto::AssetType::Int8NormsNpy);
[INFO] [stdout]    |                                                                      ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `AssetType` in `proto`
[INFO] [stdout]   --> src/assets.rs:57:69
[INFO] [stdout]    |
[INFO] [stdout] 57 |     add_if_exists(&mut assets, artifacts_dir, "dataset.npy", proto::AssetType::DatasetNpy);
[INFO] [stdout]    |                                                                     ^^^^^^^^^ could not find `AssetType` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `SerializedProjection` in `proto`
[INFO] [stdout]    --> src/projection.rs:296:33
[INFO] [stdout]     |
[INFO] [stdout] 296 |         let mut result = proto::SerializedProjection::new();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^ could not find `SerializedProjection` in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `utils` in `super`
[INFO] [stdout]   --> src/retro/embeddings.rs:39:35
[INFO] [stdout]    |
[INFO] [stdout] 39 |                 return Err(super::utils::invalid_argument_error(&format!(
[INFO] [stdout]    |                                   ^^^^^ could not find `utils` in `super`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `utils` in `super`
[INFO] [stdout]   --> src/retro/embeddings.rs:66:31
[INFO] [stdout]    |
[INFO] [stdout] 66 |             return Err(super::utils::invalid_argument_error(&format!(
[INFO] [stdout]    |                               ^^^^^ could not find `utils` in `super`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ScannAssets` in module `proto`
[INFO] [stdout]   --> src/assets.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 | ) -> Result<proto::ScannAssets, Box<dyn Error>> {
[INFO] [stdout]    |                    ^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `ScannAssets` in module `proto`
[INFO] [stdout]   --> src/assets.rs:31:29
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let mut assets = proto::ScannAssets {
[INFO] [stdout]    |                             ^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ScannAssets` in module `proto`
[INFO] [stdout]   --> src/assets.rs:36:29
[INFO] [stdout]    |
[INFO] [stdout] 36 |         assets: &mut proto::ScannAssets,
[INFO] [stdout]    |                             ^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `AssetType` in module `proto`
[INFO] [stdout]   --> src/assets.rs:39:28
[INFO] [stdout]    |
[INFO] [stdout] 39 |         asset_type: proto::AssetType,
[INFO] [stdout]    |                            ^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `ScannAsset` in module `proto`
[INFO] [stdout]   --> src/assets.rs:43:39
[INFO] [stdout]    |
[INFO] [stdout] 43 |             assets.assets.push(proto::ScannAsset {
[INFO] [stdout]    |                                       ^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `DistanceMeasureConfig` in module `proto`
[INFO] [stdout]   --> src/distance_measures.rs:92:45
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn get_distance_measure(config: &proto::DistanceMeasureConfig) -> Result<Box<dyn DistanceMeasure>, Box<dyn Error>> {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `SerializedProjection` in module `proto`
[INFO] [stdout]    --> src/projection.rs:203:40
[INFO] [stdout]     |
[INFO] [stdout] 203 |         serialized_projection: &proto::SerializedProjection,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `SerializedProjection` in module `proto`
[INFO] [stdout]    --> src/projection.rs:292:55
[INFO] [stdout]     |
[INFO] [stdout] 292 |     pub fn serialize_to_proto(&self) -> Option<proto::SerializedProjection> {
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `GenericFeatureVector` in module `proto`
[INFO] [stdout]    --> src/projection.rs:306:36
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn to_gfv(&self) -> proto::GenericFeatureVector {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `GenericFeatureVector` in module `proto`
[INFO] [stdout]    --> src/projection.rs:307:16
[INFO] [stdout]     |
[INFO] [stdout] 307 |         proto::GenericFeatureVector {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^ not found in `proto`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proto`
[INFO] [stdout]   --> src/retrieval.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::{distance_measures, proto, utils, ScannError};
[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: `DVector`
[INFO] [stdout]   --> src/retro/embeddings.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 | use nalgebra::{DMatrix, DVector};
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DVector`
[INFO] [stdout]   --> src/util.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 | use nalgebra::{DMatrix, DVector};
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0119]: conflicting implementations of trait `DistanceMeasure` for type `distance_measures::CosineDistance`
[INFO] [stdout]   --> src/distance_measures.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl DistanceMeasure for CosineDistance {
[INFO] [stdout]    | --------------------------------------- first implementation here
[INFO] [stdout] ...
[INFO] [stdout] 60 |         impl DistanceMeasure for $name {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `distance_measures::CosineDistance`
[INFO] [stdout] ...
[INFO] [stdout] 83 | define_distance_measure!(CosineDistance);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]   --> src/distance_measures.rs:92:82
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn get_distance_measure(config: &proto::DistanceMeasureConfig) -> Result<Box<dyn DistanceMeasure>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                                  ^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/distance_measures.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]    |           --------------- this trait is not dyn compatible...
[INFO] [stdout] 46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]    = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:101:63
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn get_distance_measure_by_name(name: &str) -> Result<Box<dyn DistanceMeasure>, Box<dyn Error>> {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]   --> src/retrieval.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |     distance_measure: Box<dyn distance_measures::DistanceMeasure>,
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/distance_measures.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]    |           --------------- this trait is not dyn compatible...
[INFO] [stdout] 46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]    = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]   --> src/retrieval.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 |         distance_measure: Box<dyn distance_measures::DistanceMeasure>,
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/distance_measures.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]    |           --------------- this trait is not dyn compatible...
[INFO] [stdout] 46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]    = help: consider moving `compute_distance` to another trait
[INFO] [stdout] help: you might have meant to use `Self` to refer to the implementing type
[INFO] [stdout]    |
[INFO] [stdout] 30 -         distance_measure: Box<dyn distance_measures::DistanceMeasure>,
[INFO] [stdout] 30 +         distance_measure: Box<Self>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0592]: duplicate definitions with name `new`
[INFO] [stdout]   --> src/distance_measures.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `new`
[INFO] [stdout] ...
[INFO] [stdout] 55 |             pub fn new() -> Self {
[INFO] [stdout]    |             -------------------- other definition for `new`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `&_`
[INFO] [stdout]   --> src/distance_measures.rs:31:54
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let a_vec: Vec<f32> = a.values().iter().map(|&x| x.into()).collect();
[INFO] [stdout]    |                                                      ^^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let a_vec: Vec<f32> = a.values().iter().map(|&x: &_| x.into()).collect();
[INFO] [stdout]    |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `&_`
[INFO] [stdout]   --> src/distance_measures.rs:32:54
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let b_vec: Vec<f32> = b.values().iter().map(|&x| x.into()).collect();
[INFO] [stdout]    |                                                      ^^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let b_vec: Vec<f32> = b.values().iter().map(|&x: &_| x.into()).collect();
[INFO] [stdout]    |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 76 | define_distance_measure!(DotProductDistance);
[INFO] [stdout]    | -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 76 | define_distance_measure!(DotProductDistance);
[INFO] [stdout]    | -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 77 | define_distance_measure!(BinaryDotProductDistance);
[INFO] [stdout]    | -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 77 | define_distance_measure!(BinaryDotProductDistance);
[INFO] [stdout]    | -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 78 | define_distance_measure!(AbsDotProductDistance);
[INFO] [stdout]    | ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 78 | define_distance_measure!(AbsDotProductDistance);
[INFO] [stdout]    | ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 79 | define_distance_measure!(L2Distance);
[INFO] [stdout]    | ------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 79 | define_distance_measure!(L2Distance);
[INFO] [stdout]    | ------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 80 | define_distance_measure!(SquaredL2Distance);
[INFO] [stdout]    | ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 80 | define_distance_measure!(SquaredL2Distance);
[INFO] [stdout]    | ------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 81 | define_distance_measure!(NegatedSquaredL2Distance);
[INFO] [stdout]    | -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 81 | define_distance_measure!(NegatedSquaredL2Distance);
[INFO] [stdout]    | -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 82 | define_distance_measure!(L1Distance);
[INFO] [stdout]    | ------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 82 | define_distance_measure!(L1Distance);
[INFO] [stdout]    | ------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 83 | define_distance_measure!(CosineDistance);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 83 | define_distance_measure!(CosineDistance);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 84 | define_distance_measure!(BinaryCosineDistance);
[INFO] [stdout]    | ---------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 84 | define_distance_measure!(BinaryCosineDistance);
[INFO] [stdout]    | ---------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 85 | define_distance_measure!(GeneralJaccardDistance);
[INFO] [stdout]    | ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 85 | define_distance_measure!(GeneralJaccardDistance);
[INFO] [stdout]    | ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 86 | define_distance_measure!(BinaryJaccardDistance);
[INFO] [stdout]    | ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 86 | define_distance_measure!(BinaryJaccardDistance);
[INFO] [stdout]    | ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 87 | define_distance_measure!(LimitedInnerProductDistance);
[INFO] [stdout]    | ----------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 87 | define_distance_measure!(LimitedInnerProductDistance);
[INFO] [stdout]    | ----------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 88 | define_distance_measure!(GeneralHammingDistance);
[INFO] [stdout]    | ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 88 | define_distance_measure!(GeneralHammingDistance);
[INFO] [stdout]    | ------------------------------------------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 89 | define_distance_measure!(BinaryHammingDistance);
[INFO] [stdout]    | ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 89 | define_distance_measure!(BinaryHammingDistance);
[INFO] [stdout]    | ----------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                     ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 90 | define_distance_measure!(NonzeroIntersectDistance);
[INFO] [stdout]    | -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/distance_measures.rs:68:48
[INFO] [stdout]    |
[INFO] [stdout] 68 |                     .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]    |                                                ^ cannot infer type
[INFO] [stdout] ...
[INFO] [stdout] 90 | define_distance_measure!(NonzeroIntersectDistance);
[INFO] [stdout]    | -------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]   --> src/distance_measures.rs:94:16
[INFO] [stdout]    |
[INFO] [stdout] 94 |         return Err(Box::new(ScannError {
[INFO] [stdout]    |                ^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/distance_measures.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]    |           --------------- this trait is not dyn compatible...
[INFO] [stdout] 46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]    = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]   --> src/distance_measures.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     get_distance_measure_by_name(config.distance_measure())
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/distance_measures.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]    |           --------------- this trait is not dyn compatible...
[INFO] [stdout] 46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]    = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 |         "DotProductDistance" => Ok(Box::new(DotProductDistance::new())),
[INFO] [stdout]     |                                 ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:103:33
[INFO] [stdout]     |
[INFO] [stdout] 103 |         "DotProductDistance" => Ok(Box::new(DotProductDistance::new())),
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:104:39
[INFO] [stdout]     |
[INFO] [stdout] 104 |         "BinaryDotProductDistance" => Ok(Box::new(BinaryDotProductDistance::new())),
[INFO] [stdout]     |                                       ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:104:39
[INFO] [stdout]     |
[INFO] [stdout] 104 |         "BinaryDotProductDistance" => Ok(Box::new(BinaryDotProductDistance::new())),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:105:36
[INFO] [stdout]     |
[INFO] [stdout] 105 |         "AbsDotProductDistance" => Ok(Box::new(AbsDotProductDistance::new())),
[INFO] [stdout]     |                                    ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:105:36
[INFO] [stdout]     |
[INFO] [stdout] 105 |         "AbsDotProductDistance" => Ok(Box::new(AbsDotProductDistance::new())),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |         "L2Distance" => Ok(Box::new(L2Distance::new())),
[INFO] [stdout]     |                         ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |         "L2Distance" => Ok(Box::new(L2Distance::new())),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |         "SquaredL2Distance" => Ok(Box::new(SquaredL2Distance::new())),
[INFO] [stdout]     |                                ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |         "SquaredL2Distance" => Ok(Box::new(SquaredL2Distance::new())),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:108:39
[INFO] [stdout]     |
[INFO] [stdout] 108 |         "NegatedSquaredL2Distance" => Ok(Box::new(NegatedSquaredL2Distance::new())),
[INFO] [stdout]     |                                       ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:108:39
[INFO] [stdout]     |
[INFO] [stdout] 108 |         "NegatedSquaredL2Distance" => Ok(Box::new(NegatedSquaredL2Distance::new())),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:109:25
[INFO] [stdout]     |
[INFO] [stdout] 109 |         "L1Distance" => Ok(Box::new(L1Distance::new())),
[INFO] [stdout]     |                         ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:109:25
[INFO] [stdout]     |
[INFO] [stdout] 109 |         "L1Distance" => Ok(Box::new(L1Distance::new())),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0034]: multiple applicable items in scope
[INFO] [stdout]    --> src/distance_measures.rs:110:57
[INFO] [stdout]     |
[INFO] [stdout] 110 |         "CosineDistance" => Ok(Box::new(CosineDistance::new())),
[INFO] [stdout]     |                                                         ^^^ multiple `new` found
[INFO] [stdout]     |
[INFO] [stdout] note: candidate #1 is defined in an impl for the type `distance_measures::CosineDistance`
[INFO] [stdout]    --> src/distance_measures.rs:24:5
[INFO] [stdout]     |
[INFO] [stdout]  24 |     pub fn new() -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: candidate #2 is defined in an impl for the type `distance_measures::CosineDistance`
[INFO] [stdout]    --> src/distance_measures.rs:55:13
[INFO] [stdout]     |
[INFO] [stdout]  55 |             pub fn new() -> Self {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 | define_distance_measure!(CosineDistance);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `define_distance_measure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:110:29
[INFO] [stdout]     |
[INFO] [stdout] 110 |         "CosineDistance" => Ok(Box::new(CosineDistance::new())),
[INFO] [stdout]     |                             ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:110:29
[INFO] [stdout]     |
[INFO] [stdout] 110 |         "CosineDistance" => Ok(Box::new(CosineDistance::new())),
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:111:35
[INFO] [stdout]     |
[INFO] [stdout] 111 |         "BinaryCosineDistance" => Ok(Box::new(BinaryCosineDistance::new())),
[INFO] [stdout]     |                                   ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:111:35
[INFO] [stdout]     |
[INFO] [stdout] 111 |         "BinaryCosineDistance" => Ok(Box::new(BinaryCosineDistance::new())),
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:112:37
[INFO] [stdout]     |
[INFO] [stdout] 112 |         "GeneralJaccardDistance" => Ok(Box::new(GeneralJaccardDistance::new())),
[INFO] [stdout]     |                                     ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:112:37
[INFO] [stdout]     |
[INFO] [stdout] 112 |         "GeneralJaccardDistance" => Ok(Box::new(GeneralJaccardDistance::new())),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:113:36
[INFO] [stdout]     |
[INFO] [stdout] 113 |         "BinaryJaccardDistance" => Ok(Box::new(BinaryJaccardDistance::new())),
[INFO] [stdout]     |                                    ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:113:36
[INFO] [stdout]     |
[INFO] [stdout] 113 |         "BinaryJaccardDistance" => Ok(Box::new(BinaryJaccardDistance::new())),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:114:42
[INFO] [stdout]     |
[INFO] [stdout] 114 |         "LimitedInnerProductDistance" => Ok(Box::new(LimitedInnerProductDistance::new())),
[INFO] [stdout]     |                                          ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:114:42
[INFO] [stdout]     |
[INFO] [stdout] 114 |         "LimitedInnerProductDistance" => Ok(Box::new(LimitedInnerProductDistance::new())),
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:115:37
[INFO] [stdout]     |
[INFO] [stdout] 115 |         "GeneralHammingDistance" => Ok(Box::new(GeneralHammingDistance::new())),
[INFO] [stdout]     |                                     ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:115:37
[INFO] [stdout]     |
[INFO] [stdout] 115 |         "GeneralHammingDistance" => Ok(Box::new(GeneralHammingDistance::new())),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:116:36
[INFO] [stdout]     |
[INFO] [stdout] 116 |         "BinaryHammingDistance" => Ok(Box::new(BinaryHammingDistance::new())),
[INFO] [stdout]     |                                    ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:116:36
[INFO] [stdout]     |
[INFO] [stdout] 116 |         "BinaryHammingDistance" => Ok(Box::new(BinaryHammingDistance::new())),
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:117:39
[INFO] [stdout]     |
[INFO] [stdout] 117 |         "NonzeroIntersectDistance" => Ok(Box::new(NonzeroIntersectDistance::new())),
[INFO] [stdout]     |                                       ^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:117:39
[INFO] [stdout]     |
[INFO] [stdout] 117 |         "NonzeroIntersectDistance" => Ok(Box::new(NonzeroIntersectDistance::new())),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    --> src/distance_measures.rs:119:14
[INFO] [stdout]     |
[INFO] [stdout] 119 |         _ => Err(Box::new(ScannError {
[INFO] [stdout]     |              ^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]     |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]    --> src/distance_measures.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]     |           --------------- this trait is not dyn compatible...
[INFO] [stdout]  46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]     = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(&_, &_)`
[INFO] [stdout]    --> src/projection.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |         .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]     |               ^^^^^^^^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 107 |         .map(|(&x, &y): (&_, &_)| x.into() * y.into())
[INFO] [stdout]     |                       ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(&{type error}, &_)`
[INFO] [stdout]    --> src/projection.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |         .map(|(&x, &y)| x.into() * y.into())
[INFO] [stdout]     |               ^^^^^^^^             - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 107 |         .map(|(&x, &y): (&_, &_)| x.into() * y.into())
[INFO] [stdout]     |                       ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/projection.rs:118:66
[INFO] [stdout]     |
[INFO] [stdout] 118 |         output[i] = dot_product(input, &utils::DatapointPtr::new(row.clone()));
[INFO] [stdout]     |                                                                  ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/projection.rs:163:36
[INFO] [stdout]     |
[INFO] [stdout] 163 |             pca_vec_dataset.append(vec.values(), "").unwrap();
[INFO] [stdout]     |                                    ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/projection.rs:191:36
[INFO] [stdout]     |
[INFO] [stdout] 191 |             pca_vec_dataset.append(vec.values(), "").unwrap();
[INFO] [stdout]     |                                    ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/projection.rs:227:20
[INFO] [stdout]     |
[INFO] [stdout] 227 |         assert_eq!(pca_vecs.size(), self.projected_dims as usize);
[INFO] [stdout]     |                    ^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/projection.rs:282:95
[INFO] [stdout]     |
[INFO] [stdout] 282 |                 projected.values[i] = From::from(dot_product(input, &utils::DatapointPtr::new(vec.clone())));
[INFO] [stdout]     |                                                                                               ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/projection.rs:297:37
[INFO] [stdout]     |
[INFO] [stdout] 297 |         result.reserve_rotation_vec(pca_vecs.size());
[INFO] [stdout]     |                                     ^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/projection.rs:299:67
[INFO] [stdout]     |
[INFO] [stdout] 299 |             *result.add_rotation_vec() = utils::DatapointPtr::new(eigenvector.clone()).to_gfv();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0038]: the trait `DistanceMeasure` is not dyn compatible
[INFO] [stdout]   --> src/retrieval.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             distance_measure,
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^ `DistanceMeasure` is not dyn compatible
[INFO] [stdout]    |
[INFO] [stdout] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stdout]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stdout]   --> src/distance_measures.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait DistanceMeasure: Send + Sync {
[INFO] [stdout]    |           --------------- this trait is not dyn compatible...
[INFO] [stdout] 46 |     fn compute_distance<T: Copy + Into<f32>>(&self, a: &utils::DatapointPtr<T>, b: &utils::DatapointPtr<T>) -> f32;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ ...because method `compute_distance` has generic type parameters
[INFO] [stdout]    = help: consider moving `compute_distance` to another trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/retrieval.rs:44:46
[INFO] [stdout]    |
[INFO] [stdout] 44 |             let data_vec = DVector::from_vec(data_point.clone());
[INFO] [stdout]    |                                              ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/retro/attention.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |         Ok(x.component_div(&norm_clamped) * &self.gamma)
[INFO] [stdout]    |         -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Matrix<f32, Dyn, Dyn, ...>`, found `Matrix<f32, Const<1>, Const<1>, ...>`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Matrix<_, Dyn, Dyn, VecStorage<f32, Dyn, Dyn>>`
[INFO] [stdout]               found struct `Matrix<_, Const<1>, Const<1>, ArrayStorage<f32, 1, 1>>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38/library/core/src/result.rs:561:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Normal`
[INFO] [stdout]   --> src/retro/attention.rs:84:22
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout]    |                      ^^^^^^ use of undeclared type `Normal`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `core::intrinsics::mir::BasicBlock::Normal` and 5 others; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 84 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 84 +         let normal = core::intrinsics::mir::BasicBlock::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 84 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 84 +         let normal = core::num::FpCategory::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 84 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 84 +         let normal = std::intrinsics::mir::BasicBlock::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 84 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 84 +         let normal = std::num::FpCategory::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout]    = and 1 other candidate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/retro/attention.rs:85:23
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                       ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `reshape` found for struct `Matrix<T, R, C, S>` in the current scope
[INFO] [stdout]    --> src/retro/decoder.rs:55:19
[INFO] [stdout]     |
[INFO] [stdout]  55 |         let x = x.reshape((num_chunks, chunk_size, x.ncols()));
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `shape` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/nalgebra-0.32.6/src/base/matrix.rs:417:5
[INFO] [stdout]     |
[INFO] [stdout] 417 |     pub fn shape(&self) -> (usize, usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `reshape` found for reference `&Matrix<f32, Dyn, Dyn, VecStorage<f32, Dyn, Dyn>>` in the current scope
[INFO] [stdout]    --> src/retro/decoder.rs:56:31
[INFO] [stdout]     |
[INFO] [stdout]  56 |         let context = context.reshape((num_chunks, context.nrows() / num_chunks, context.ncols()));
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `shape` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/nalgebra-0.32.6/src/base/matrix.rs:417:5
[INFO] [stdout]     |
[INFO] [stdout] 417 |     pub fn shape(&self) -> (usize, usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `reshape` found for struct `Matrix<T, R, C, S>` in the current scope
[INFO] [stdout]    --> src/retro/decoder.rs:58:23
[INFO] [stdout]     |
[INFO] [stdout]  58 |         let out = out.reshape((seq_index, x.ncols()));
[INFO] [stdout]     |                       ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `shape` with a similar name, but with different arguments
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/nalgebra-0.32.6/src/base/matrix.rs:417:5
[INFO] [stdout]     |
[INFO] [stdout] 417 |     pub fn shape(&self) -> (usize, usize) {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/retro/decoder.rs:120:81
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 x = cross_attn.forward(&x, retrieved_encoded.as_ref().unwrap(), &cross_attn_pos_emb)? + &x;
[INFO] [stdout]     |                                ------- arguments to this method are incorrect   ^^^^^^^^^^^^^^^^^^^ expected `(&Matrix<f32, Dyn, Dyn, ...>, ...)`, found `&(Matrix<f32, Dyn, Dyn, ...>, ...)`
[INFO] [stdout]     |
[INFO] [stdout]     = note:  expected tuple `(&Matrix<_, _, _, _>, &Matrix<_, _, _, _>)`
[INFO] [stdout]             found reference `&(Matrix<_, _, _, _>, Matrix<_, _, _, _>)`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/retro/decoder.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  35 |     pub fn forward(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |         pos_emb: (&DMatrix<f32>, &DMatrix<f32>),
[INFO] [stdout]     |         ---------------------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/retro/embeddings.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                       ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/retro/embeddings.rs:57:23
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                       ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Normal`
[INFO] [stdout]   --> src/retro/encoder.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout]    |                      ^^^^^^ use of undeclared type `Normal`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `core::intrinsics::mir::BasicBlock::Normal` and 5 others; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 30 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 30 +         let normal = core::intrinsics::mir::BasicBlock::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 30 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 30 +         let normal = core::num::FpCategory::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 30 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 30 +         let normal = std::intrinsics::mir::BasicBlock::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout] 30 -         let normal = Normal::new(0.0, 1.0);
[INFO] [stdout] 30 +         let normal = std::num::FpCategory::new(0.0, 1.0);
[INFO] [stdout]    |
[INFO] [stdout]    = and 1 other candidate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/retro/encoder.rs:31:23
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let mut rng = rand::thread_rng();
[INFO] [stdout]    |                       ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/retro/encoder.rs:39:76
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let hidden = utils::matrix_multiply(x, &self.w1.transpose())?.map(|v| v.max(0.0)); // GELU approximation
[INFO] [stdout]    |                                                                            ^  - type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let hidden = utils::matrix_multiply(x, &self.w1.transpose())?.map(|v: /* Type */| v.max(0.0)); // GELU approximation
[INFO] [stdout]    |                                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/retro/model.rs:43:24
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 |_, _| rand::random::<f32>(),
[INFO] [stdout]    |                        ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/retro/model.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |                 |_, _| rand::random::<f32>(),
[INFO] [stdout]    |                        ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `f32`
[INFO] [stdout]    --> src/retro/model.rs:113:78
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 |i, j| retrieved_data[i][j / retrieved_data[0][0].ncols()][0][j % retrieved_data[0][0].ncols()],
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `u32: From<f32>` is not satisfied
[INFO] [stdout]    --> src/serialize.rs:106:33
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let n = uint_from_ieee754::<f32, u32>(x);
[INFO] [stdout]     |                                 ^^^ the trait `From<f32>` is not implemented for `u32`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `u32` implements `From<Char>`
[INFO] [stdout]               `u32` implements `From<Ipv4Addr>`
[INFO] [stdout]               `u32` implements `From<bool>`
[INFO] [stdout]               `u32` implements `From<char>`
[INFO] [stdout]               `u32` implements `From<u16>`
[INFO] [stdout]               `u32` implements `From<u8>`
[INFO] [stdout]     = note: required for `f32` to implement `Into<u32>`
[INFO] [stdout] note: required by a bound in `uint_from_ieee754`
[INFO] [stdout]    --> src/serialize.rs:22:16
[INFO] [stdout]     |
[INFO] [stdout]  20 | fn uint_from_ieee754<FloatType, UintType>(f: FloatType) -> UintType
[INFO] [stdout]     |    ----------------- required by a bound in this function
[INFO] [stdout]  21 | where
[INFO] [stdout]  22 |     FloatType: Into<u32> + Copy,
[INFO] [stdout]     |                ^^^^^^^^^ required by this bound in `uint_from_ieee754`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `f32: From<u32>` is not satisfied
[INFO] [stdout]    --> src/serialize.rs:119:28
[INFO] [stdout]     |
[INFO] [stdout] 119 |     Ok(ieee754_from_uint::<f32, u32>(n))
[INFO] [stdout]     |                            ^^^ the trait `From<u32>` is not implemented for `f32`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `f32` implements `From<bool>`
[INFO] [stdout]               `f32` implements `From<i16>`
[INFO] [stdout]               `f32` implements `From<i8>`
[INFO] [stdout]               `f32` implements `From<u16>`
[INFO] [stdout]               `f32` implements `From<u8>`
[INFO] [stdout] note: required by a bound in `ieee754_from_uint`
[INFO] [stdout]    --> src/serialize.rs:37:16
[INFO] [stdout]     |
[INFO] [stdout]  34 | fn ieee754_from_uint<FloatType, UintType>(n: UintType) -> FloatType
[INFO] [stdout]     |    ----------------- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  37 |     FloatType: From<u32>,
[INFO] [stdout]     |                ^^^^^^^^^ required by this bound in `ieee754_from_uint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
[INFO] [stdout]   --> src/serialize.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let n: u32 = unsafe { std::mem::transmute(f) };
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: source type: `FloatType` (this type does not have a fixed size)
[INFO] [stdout]    = note: target type: `u32` (32 bits)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `scann` (lib) due to 135 previous errors; 3 warnings emitted
[INFO] [stdout] error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
[INFO] [stdout]   --> src/serialize.rs:46:14
[INFO] [stdout]    |
[INFO] [stdout] 46 |     unsafe { std::mem::transmute(adjusted) }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: source type: `u32` (32 bits)
[INFO] [stdout]    = note: target type: `FloatType` (this type does not have a fixed size)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0034, E0038, E0119, E0277, E0282, E0308, E0412, E0422, E0428...
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0034`.
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "238a575365801d82e83939cc29c48c509536903133527614a4b9bd7ab70a3462", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "238a575365801d82e83939cc29c48c509536903133527614a4b9bd7ab70a3462", kill_on_drop: false }`
[INFO] [stdout] 238a575365801d82e83939cc29c48c509536903133527614a4b9bd7ab70a3462
