[INFO] fetching crate senor_borroso 0.1.0...
[INFO] testing senor_borroso-0.1.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate senor_borroso 0.1.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate senor_borroso 0.1.0
[INFO] finished tweaking crates.io crate senor_borroso 0.1.0
[INFO] tweaked toml for crates.io crate senor_borroso 0.1.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate senor_borroso 0.1.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate senor_borroso 0.1.0 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7b05651498692e5b1fa26dd59e23a50acd9f98aa1e5c9a920df33f357b662b9c
[INFO] running `Command { std: "docker" "start" "-a" "7b05651498692e5b1fa26dd59e23a50acd9f98aa1e5c9a920df33f357b662b9c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7b05651498692e5b1fa26dd59e23a50acd9f98aa1e5c9a920df33f357b662b9c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b05651498692e5b1fa26dd59e23a50acd9f98aa1e5c9a920df33f357b662b9c", kill_on_drop: false }`
[INFO] [stdout] 7b05651498692e5b1fa26dd59e23a50acd9f98aa1e5c9a920df33f357b662b9c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6639a812ab317f4656ca190f4b9cb95b6652b778ac604db0308865e850bd91ff
[INFO] running `Command { std: "docker" "start" "-a" "6639a812ab317f4656ca190f4b9cb95b6652b778ac604db0308865e850bd91ff", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.97
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling once_cell v1.8.0
[INFO] [stderr]    Compiling libm v0.2.1
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling space v0.12.0
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling smallvec v1.6.1
[INFO] [stderr]    Compiling rand_pcg v0.3.1
[INFO] [stderr]    Compiling levenshtein v1.0.5
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling unidecode v0.3.0
[INFO] [stderr]    Compiling ahash v0.7.4
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling hashbrown v0.11.2
[INFO] [stderr]    Compiling hnsw v0.8.0
[INFO] [stderr]    Compiling senor_borroso v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FuzzyIndexTest`, `HnswTester`, `Testable`, and `TrainingAtom`
[INFO] [stdout]   --> src/main.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | use testing::{FuzzyIndexTest, HnswTester, Testable, TrainingAtom};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FxHasher32`
[INFO] [stdout]  --> src/feat.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fxhash::{FxHasher32, FxHasher64};
[INFO] [stdout]   |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::transmute`
[INFO] [stdout]   --> src/feat.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::mem::transmute;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/feat.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 175 |         (n as f64 / d as f64)
[INFO] [stdout]     |         ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 175 -         (n as f64 / d as f64)
[INFO] [stdout] 175 +         n as f64 / d as f64 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_Id` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:471:5
[INFO] [stdout]     |
[INFO] [stdout] 471 |     G_Id: Fn(Origin) -> Id,
[INFO] [stdout]     |     ^^^^ help: convert the identifier to upper camel case: `GId`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:472:5
[INFO] [stdout]     |
[INFO] [stdout] 472 |     G_T: Fn(&Origin) -> Vec<Tok>,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case: `GT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `U_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:473:5
[INFO] [stdout]     |
[INFO] [stdout] 473 |     U_T: CanGram,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case: `UT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_Id` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:484:6
[INFO] [stdout]     |
[INFO] [stdout] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stdout]     |      ^^^^ help: convert the identifier to upper camel case: `GId`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:484:12
[INFO] [stdout]     |
[INFO] [stdout] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stdout]     |            ^^^ help: convert the identifier to upper camel case: `GT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `U_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:484:17
[INFO] [stdout]     |
[INFO] [stdout] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stdout]     |                 ^^^ help: convert the identifier to upper camel case: `UT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dualiter::*`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use dualiter::*;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CanGram`, `EmptyFtzr`, `MultiFtzr`, `book_ends`, `n_gram`, and `skipgram`
[INFO] [stdout]   --> src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use ftzrs::{book_ends, n_gram, skipgram, CanGram, EmptyFtzr, MultiFtzr};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildHasherDefault` and `Hasher`
[INFO] [stdout]  --> src/fuzzyindex.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FuzzyIndex` and `SearchParams`
[INFO] [stdout]   --> src/main.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | use fuzzyindex::{FuzzyIndex, SearchParams};
[INFO] [stdout]    |                  ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Counted`, `FuzzyPoint`, `Hamming`, `Jaccard`, `Labeled`, `Metric`, `SimHash`, and `SimplePoint`
[INFO] [stdout]   --> src/main.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 | use fuzzypoint::{Counted, FuzzyPoint, Hamming, Jaccard, Labeled, Metric, SimHash, SimplePoint};
[INFO] [stdout]    |                  ^^^^^^^  ^^^^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^  ^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fuzzypoint::*`
[INFO] [stdout]  --> src/hasfeatures.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fuzzypoint::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildHasherDefault` and `Hasher`
[INFO] [stdout]  --> src/hasfeatures.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/hasfeatures.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HasFeatures` and `HasName`
[INFO] [stdout]   --> src/main.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | use hasfeatures::{HasFeatures, HasName};
[INFO] [stdout]    |                   ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Entry`, `get_entry`, `open_lexicon`, `rec_rev_str`, and `shuffle`
[INFO] [stdout]   --> src/main.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | use utils::{get_entry, open_lexicon, rec_rev_str, shuffle, Entry};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ta`
[INFO] [stdout]   --> src/testing.rs:22:33
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn is_false_negative(&self, ta: &TrainingAtom<Self::Item>, a: &Self::Item) -> bool {
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ta`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/testing.rs:22:64
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn is_false_negative(&self, ta: &TrainingAtom<Self::Item>, a: &Self::Item) -> bool {
[INFO] [stdout]    |                                                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/testing.rs:83:45
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn average_comparisons<Data>(&mut self, data: Data) -> f32
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/testing.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |             let n = hn.nearest(&point, self.ef, &mut self.searcher, &mut neighbors)[0];
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sim_a`
[INFO] [stdout]    --> src/feat.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let sim_a = 0;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sim_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sim_b`
[INFO] [stdout]    --> src/feat.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let sim_b = 0; //simhash_stream(vbow.iter());
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sim_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/feat.rs:398:70
[INFO] [stdout]     |
[INFO] [stdout] 398 |     fn run<F: FnMut(u64) -> (), T: Sized + Hash + fmt::Debug>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `push_feat`
[INFO] [stdout]    --> src/feat.rs:398:79
[INFO] [stdout]     |
[INFO] [stdout] 398 |     fn run<F: FnMut(u64) -> (), T: Sized + Hash + fmt::Debug>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_push_feat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ss`
[INFO] [stdout]    --> src/feat.rs:449:13
[INFO] [stdout]     |
[INFO] [stdout] 449 |         let ss = SkipScheme {
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ss`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/ftzrs.rs:162:69
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn run<T: Sized + Hash + Debug, F: FnMut(Feature) -> ()>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `push_feat`
[INFO] [stdout]    --> src/ftzrs.rs:162:78
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn run<T: Sized + Hash + Debug, F: FnMut(Feature) -> ()>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_push_feat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fuzzyindex.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut item_iter = self.to_sort.drain(..);
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut points: Vec<Labeled<Point, Id>> =
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut r = FuzzySearchIndex {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut sort_slate: &mut Vec<u32> = &mut Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |             let mut points = &mut e.entry;
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tfidf`
[INFO] [stdout]    --> src/fuzzyindex.rs:268:21
[INFO] [stdout]     |
[INFO] [stdout] 268 |                 let tfidf: u32 = 512 / ((e.id as f64).log2() as u32 + 1);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_tfidf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_toks`
[INFO] [stdout]    --> src/fuzzyindex.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let n_toks = point.get_sorted_features().len() as f64;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_toks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `induce_typo` is never used
[INFO] [stdout]   --> src/main.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn induce_typo(word: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrainingAtom` is never constructed
[INFO] [stdout]   --> src/testing.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TrainingAtom<T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Testable` is never used
[INFO] [stdout]   --> src/testing.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait Testable {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzyIndexTest` is never constructed
[INFO] [stdout]   --> src/testing.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct FuzzyIndexTest<Ftzr: CanGram, P: FuzzyPoint, M: Metric<P>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/testing.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl<Ftzr: CanGram, P: FuzzyPoint, M: Metric<P>> FuzzyIndexTest<Ftzr, P, M> {
[INFO] [stdout]    | --------------------------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 98 |     pub fn new(lookup: FuzzyIndex<String, Ftzr, P>, params: SearchParams<M>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HnswTester` is never constructed
[INFO] [stdout]    --> src/testing.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct HnswTester<
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/testing.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | / impl<
[INFO] [stdout] 157 | |         Ftzr: CanGram,
[INFO] [stdout] 158 | |         Mtrc: Clone + Metric<Point>,
[INFO] [stdout] 159 | |         Point: FuzzyPoint,
[INFO] [stdout] 160 | |         const M: usize,
[INFO] [stdout] 161 | |         const M0: usize,
[INFO] [stdout] 162 | |     > HnswTester<Ftzr, Mtrc, Point, M, M0>
[INFO] [stdout]     | |__________________________________________- associated function in this implementation
[INFO] [stdout] 163 |   {
[INFO] [stdout] 164 |       pub fn new(ftzr: Ftzr, m: Mtrc, ef: usize, words: Vec<String>) -> Self {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FnvHasher` is never constructed
[INFO] [stdout]   --> src/feat.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct FnvHasher(u64);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FnvBuildHasher` is never used
[INFO] [stdout]   --> src/feat.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | type FnvBuildHasher = BuildHasherDefault<FnvHasher>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzyEntry` is never constructed
[INFO] [stdout]   --> src/feat.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct FuzzyEntry<T, Id = String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_feature` is never used
[INFO] [stdout]   --> src/feat.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn hash_feature<T: Hash>(t: &T) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream` is never used
[INFO] [stdout]   --> src/feat.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn simhash_stream<W, T: Hash>(words: W) -> u64
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream_u128` is never used
[INFO] [stdout]   --> src/feat.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn simhash_stream_u128<W, T: Hash>(words: W) -> u128
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FeatEntry` is never used
[INFO] [stdout]    --> src/feat.rs:118:10
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Featurizer` is never used
[INFO] [stdout]    --> src/feat.rs:120:11
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub trait Featurizer {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sim` and `ham_dist` are never used
[INFO] [stdout]    --> src/feat.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl<T: Ord, Id> FuzzyEntry<T, Id> {
[INFO] [stdout]     | ---------------------------------- methods in this implementation
[INFO] [stdout] 156 |     #[inline(always)]
[INFO] [stdout] 157 |     pub fn sim(&self, other: &Self) -> f64 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn ham_dist(&self, other: &Self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsciiFeat` is never constructed
[INFO] [stdout]    --> src/feat.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub struct AsciiFeat(u8, u8, u8, u8);
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefaultAscii` is never constructed
[INFO] [stdout]    --> src/feat.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct DefaultAscii;
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CanGram` is never used
[INFO] [stdout]    --> src/feat.rs:243:11
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub trait CanGram {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkipScheme` is never constructed
[INFO] [stdout]    --> src/feat.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct SkipScheme {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `n_gram` is never used
[INFO] [stdout]    --> src/feat.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn n_gram(n: usize) -> SkipScheme {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skipgram` is never used
[INFO] [stdout]    --> src/feat.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn skipgram(a: usize, gap: (usize, usize), b: usize) -> SkipScheme {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BookEnds` is never used
[INFO] [stdout]    --> src/feat.rs:346:6
[INFO] [stdout]     |
[INFO] [stdout] 346 | enum BookEnds {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `uniq` is never used
[INFO] [stdout]    --> src/feat.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | impl BookEnds {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 352 |     fn uniq(&self) -> u64 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookEndsFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:361:12
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub struct BookEndsFtzr<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `book_ends` is never used
[INFO] [stdout]    --> src/feat.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn book_ends<Cg: CanGram>(head_toe: (usize, usize), cg: Cg) -> BookEndsFtzr<Cg> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EmptyFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:395:12
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub struct EmptyFtzr;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:402:12
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub struct MultiFtzr<A, B> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]    --> src/feat.rs:427:12
[INFO] [stdout]     |
[INFO] [stdout] 427 | pub struct Token(u64);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefaultUnicode` is never constructed
[INFO] [stdout]    --> src/feat.rs:430:12
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub struct DefaultUnicode;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnonFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:470:12
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub struct AnonFtzr<
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Doc` is never constructed
[INFO] [stdout]    --> src/feat.rs:510:12
[INFO] [stdout]     |
[INFO] [stdout] 510 | pub struct Doc<Id, Tok> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DocFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:516:12
[INFO] [stdout]     |
[INFO] [stdout] 516 | pub struct DocFtzr<Cg: CanGram, Id, Tok> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/feat.rs:522:12
[INFO] [stdout]     |
[INFO] [stdout] 521 | impl<Cg: CanGram, Id, Tok> DocFtzr<Cg, Id, Tok> {
[INFO] [stdout]     | ----------------------------------------------- associated function in this implementation
[INFO] [stdout] 522 |     pub fn new(cg: Cg) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AndOrOr` is never used
[INFO] [stdout]  --> src/dualiter.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum AndOrOr<T> {
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DualIter` is never constructed
[INFO] [stdout]   --> src/dualiter.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DualIter<L, T, R> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `next_left_right` are never used
[INFO] [stdout]   --> src/dualiter.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | / impl<L, T, R> DualIter<L, T, R>
[INFO] [stdout] 17 | | where
[INFO] [stdout] 18 | |     L: Iterator<Item = T>,
[INFO] [stdout] 19 | |     R: Iterator<Item = T>,
[INFO] [stdout]    | |__________________________- associated functions in this implementation
[INFO] [stdout] 20 |   {
[INFO] [stdout] 21 |       pub fn new(mut l: L, mut r: R) -> DualIter<L, T, R> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |       fn next_left_right(l: &mut L, r: &mut R) -> Option<AndOrOr<T>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Feature` is never constructed
[INFO] [stdout]  --> src/ftzrs.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Feature(u64);
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CanGram` is never used
[INFO] [stdout]   --> src/ftzrs.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait CanGram {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkipScheme` is never constructed
[INFO] [stdout]   --> src/ftzrs.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SkipScheme {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `n_gram` is never used
[INFO] [stdout]   --> src/ftzrs.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn n_gram(n: usize) -> SkipScheme {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skipgram` is never used
[INFO] [stdout]    --> src/ftzrs.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn skipgram(a: usize, gap: (usize, usize), b: usize) -> SkipScheme {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BookEnds` is never used
[INFO] [stdout]    --> src/ftzrs.rs:110:6
[INFO] [stdout]     |
[INFO] [stdout] 110 | enum BookEnds {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `uniq` is never used
[INFO] [stdout]    --> src/ftzrs.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl BookEnds {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 116 |     fn uniq(&self) -> u64 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookEndsFtzr` is never constructed
[INFO] [stdout]    --> src/ftzrs.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct BookEndsFtzr<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `book_ends` is never used
[INFO] [stdout]    --> src/ftzrs.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn book_ends<Cg: CanGram>(head_toe: (usize, usize), cg: Cg) -> BookEndsFtzr<Cg> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EmptyFtzr` is never constructed
[INFO] [stdout]    --> src/ftzrs.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct EmptyFtzr;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiFtzr` is never constructed
[INFO] [stdout]    --> src/ftzrs.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct MultiFtzr<A, B> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FreqCounterWith` is never constructed
[INFO] [stdout]   --> src/fuzzyindex.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FreqCounterWith<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `frequencies` are never used
[INFO] [stdout]   --> src/fuzzyindex.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<T: Ord + Debug> FreqCounterWith<T> {
[INFO] [stdout]    | --------------------------------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new() -> FreqCounterWith<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn frequencies<'a, Items>(&'a mut self, items: Items) -> &'a mut Vec<(T, u32)>
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScratchPad` is never constructed
[INFO] [stdout]   --> src/fuzzyindex.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ScratchPad {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/fuzzyindex.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ScratchPad {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 67 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchParams` is never constructed
[INFO] [stdout]   --> src/fuzzyindex.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct SearchParams<M> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_metric` is never used
[INFO] [stdout]    --> src/fuzzyindex.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl<M1> SearchParams<M1> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_metric<M2>(&self, m: M2) -> SearchParams<M2> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzySearchIndex` is never constructed
[INFO] [stdout]    --> src/fuzzyindex.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct FuzzySearchIndex<Origin, Tok, Id, Ftzr, Point> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FuzzyIndex` is never used
[INFO] [stdout]    --> src/fuzzyindex.rs:127:10
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `freq_of`, `compress_index`, `compress_step`, and `best_match` are never used
[INFO] [stdout]    --> src/fuzzyindex.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | / impl<Origin, Tok, Id, Ftzr, Point> FuzzySearchIndex<Origin, Tok, Id, Ftzr, Point>
[INFO] [stdout] 131 | | where
[INFO] [stdout] 132 | |     Tok: Sized + Hash + Debug,
[INFO] [stdout] 133 | |     Origin: HasFeatures<Tok = Tok> + HasName<Id = Id> + Eq + Hash,
[INFO] [stdout] 134 | |     Point: FuzzyPoint,
[INFO] [stdout] 135 | |     Ftzr: CanGram,
[INFO] [stdout] 136 | |     Id: Clone,
[INFO] [stdout]     | |______________- associated items in this implementation
[INFO] [stdout] 137 |   {
[INFO] [stdout] 138 |       pub fn new<W: Iterator<Item = Origin>>(ftzr: Ftzr, sequences: W) -> Self {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |       fn freq_of(&self, f: &Feature) -> usize {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |       pub fn compress_index(&mut self, cuttoff: usize) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |       fn compress_step(&mut self, cuttoff: usize) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |       pub fn best_match<M: Metric<Point>>(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FuzzyPoint` is never used
[INFO] [stdout]   --> src/fuzzypoint.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait FuzzyPoint {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimplePoint` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SimplePoint {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Labeled` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Labeled<Point, Id = String> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Metric` is never used
[INFO] [stdout]   --> src/fuzzypoint.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait Metric<P> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Jaccard` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct Jaccard;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Counted` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct Counted<M> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/fuzzypoint.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl<M> Counted<M> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 96 |     pub fn new(m: M) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimHash` is never constructed
[INFO] [stdout]    --> src/fuzzypoint.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct SimHash {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_feature` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn hash_feature<T: Hash>(t: &T) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn simhash_stream<W, T: Hash>(words: W) -> u64
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream_u128` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn simhash_stream_u128<W, T: Hash>(words: W) -> u128
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hamming` is never constructed
[INFO] [stdout]    --> src/fuzzypoint.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct Hamming;
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HnswPoint` is never constructed
[INFO] [stdout]    --> src/fuzzypoint.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct HnswPoint<M: Metric<P>, P: FuzzyPoint> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl<P: FuzzyPoint, M: Metric<P>> HnswPoint<M, P> {
[INFO] [stdout]     | ------------------------------------------------- associated function in this implementation
[INFO] [stdout] 224 |     pub fn new(m: M, p: P) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HasFeatures` is never used
[INFO] [stdout]  --> src/hasfeatures.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait HasFeatures {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HasName` is never used
[INFO] [stdout]   --> src/hasfeatures.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait HasName {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entry` is never constructed
[INFO] [stdout]   --> src/utils.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Entry<Id, T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_entry` is never used
[INFO] [stdout]   --> src/utils.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn get_entry<'a, Id: Ord, T>(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shuffle` is never used
[INFO] [stdout]   --> src/utils.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn shuffle<T: Hash + Clone>(items: &[T]) -> Vec<T> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rec_rev_str` is never used
[INFO] [stdout]   --> src/utils.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn rec_rev_str(mut s: String) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_lexicon` is never used
[INFO] [stdout]   --> src/utils.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn open_lexicon(path: &Path) -> HashSet<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `palindrome_lexicon` is never used
[INFO] [stdout]   --> src/utils.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn palindrome_lexicon(lx: &mut HashSet<String>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/feat.rs:118:23
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout]     |                       ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: remove this bound
[INFO] [stdout]     |
[INFO] [stdout] 118 - pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout] 118 + pub type FeatEntry<F> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<<F as /* Trait */>::Feat, F::Id>;
[INFO] [stdout]     |                                                +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, <F as /* Trait */>::Id>;
[INFO] [stdout]     |                                                         +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/feat.rs:312:25
[INFO] [stdout]     |
[INFO] [stdout] 312 |                         &s[x..y].hash(&mut hasher);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 312 |                         let _ = &s[x..y].hash(&mut hasher);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/ftzrs.rs:76:25
[INFO] [stdout]    |
[INFO] [stdout] 76 |                         &s[x..y].hash(&mut hasher);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |                         let _ = &s[x..y].hash(&mut hasher);
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/fuzzyindex.rs:127:29
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stdout]     |                             ^^^^^^^   ^^^^^^^^^^^               ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout] help: remove these bounds
[INFO] [stdout]     |
[INFO] [stdout] 127 - pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stdout] 127 + pub type FuzzyIndex<Origin, Ftzr, Point> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.05s
[INFO] running `Command { std: "docker" "inspect" "6639a812ab317f4656ca190f4b9cb95b6652b778ac604db0308865e850bd91ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6639a812ab317f4656ca190f4b9cb95b6652b778ac604db0308865e850bd91ff", kill_on_drop: false }`
[INFO] [stdout] 6639a812ab317f4656ca190f4b9cb95b6652b778ac604db0308865e850bd91ff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 338899b84c6f480b75d57febff9ef4a90ad198a3f5bc0258e2510e9ece24156c
[INFO] running `Command { std: "docker" "start" "-a" "338899b84c6f480b75d57febff9ef4a90ad198a3f5bc0258e2510e9ece24156c", kill_on_drop: false }`
[INFO] [stderr]    Compiling senor_borroso v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FuzzyIndexTest`, `HnswTester`, `Testable`, and `TrainingAtom`
[INFO] [stdout]   --> src/main.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | use testing::{FuzzyIndexTest, HnswTester, Testable, TrainingAtom};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FxHasher32`
[INFO] [stdout]  --> src/feat.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use fxhash::{FxHasher32, FxHasher64};
[INFO] [stdout]   |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem::transmute`
[INFO] [stdout]   --> src/feat.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::mem::transmute;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/feat.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 175 |         (n as f64 / d as f64)
[INFO] [stdout]     |         ^                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 175 -         (n as f64 / d as f64)
[INFO] [stdout] 175 +         n as f64 / d as f64 
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_Id` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:471:5
[INFO] [stdout]     |
[INFO] [stdout] 471 |     G_Id: Fn(Origin) -> Id,
[INFO] [stdout]     |     ^^^^ help: convert the identifier to upper camel case: `GId`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:472:5
[INFO] [stdout]     |
[INFO] [stdout] 472 |     G_T: Fn(&Origin) -> Vec<Tok>,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case: `GT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `U_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:473:5
[INFO] [stdout]     |
[INFO] [stdout] 473 |     U_T: CanGram,
[INFO] [stdout]     |     ^^^ help: convert the identifier to upper camel case: `UT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_Id` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:484:6
[INFO] [stdout]     |
[INFO] [stdout] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stdout]     |      ^^^^ help: convert the identifier to upper camel case: `GId`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `G_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:484:12
[INFO] [stdout]     |
[INFO] [stdout] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stdout]     |            ^^^ help: convert the identifier to upper camel case: `GT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `U_T` should have an upper camel case name
[INFO] [stdout]    --> src/feat.rs:484:17
[INFO] [stdout]     |
[INFO] [stdout] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stdout]     |                 ^^^ help: convert the identifier to upper camel case: `UT`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dualiter::*`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use dualiter::*;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CanGram`, `EmptyFtzr`, `MultiFtzr`, `book_ends`, `n_gram`, and `skipgram`
[INFO] [stdout]   --> src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use ftzrs::{book_ends, n_gram, skipgram, CanGram, EmptyFtzr, MultiFtzr};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildHasherDefault` and `Hasher`
[INFO] [stdout]  --> src/fuzzyindex.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FuzzyIndex` and `SearchParams`
[INFO] [stdout]   --> src/main.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | use fuzzyindex::{FuzzyIndex, SearchParams};
[INFO] [stdout]    |                  ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Counted`, `FuzzyPoint`, `Hamming`, `Jaccard`, `Labeled`, `Metric`, `SimHash`, and `SimplePoint`
[INFO] [stdout]   --> src/main.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 | use fuzzypoint::{Counted, FuzzyPoint, Hamming, Jaccard, Labeled, Metric, SimHash, SimplePoint};
[INFO] [stdout]    |                  ^^^^^^^  ^^^^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^  ^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fuzzypoint::*`
[INFO] [stdout]  --> src/hasfeatures.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fuzzypoint::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildHasherDefault` and `Hasher`
[INFO] [stdout]  --> src/hasfeatures.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/hasfeatures.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HasFeatures` and `HasName`
[INFO] [stdout]   --> src/main.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | use hasfeatures::{HasFeatures, HasName};
[INFO] [stdout]    |                   ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Entry`, `get_entry`, `open_lexicon`, `rec_rev_str`, and `shuffle`
[INFO] [stdout]   --> src/main.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | use utils::{get_entry, open_lexicon, rec_rev_str, shuffle, Entry};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ta`
[INFO] [stdout]   --> src/testing.rs:22:33
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn is_false_negative(&self, ta: &TrainingAtom<Self::Item>, a: &Self::Item) -> bool {
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ta`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/testing.rs:22:64
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn is_false_negative(&self, ta: &TrainingAtom<Self::Item>, a: &Self::Item) -> bool {
[INFO] [stdout]    |                                                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/testing.rs:83:45
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn average_comparisons<Data>(&mut self, data: Data) -> f32
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/testing.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |             let n = hn.nearest(&point, self.ef, &mut self.searcher, &mut neighbors)[0];
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sim_a`
[INFO] [stdout]    --> src/feat.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let sim_a = 0;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sim_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sim_b`
[INFO] [stdout]    --> src/feat.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let sim_b = 0; //simhash_stream(vbow.iter());
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sim_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/feat.rs:398:70
[INFO] [stdout]     |
[INFO] [stdout] 398 |     fn run<F: FnMut(u64) -> (), T: Sized + Hash + fmt::Debug>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `push_feat`
[INFO] [stdout]    --> src/feat.rs:398:79
[INFO] [stdout]     |
[INFO] [stdout] 398 |     fn run<F: FnMut(u64) -> (), T: Sized + Hash + fmt::Debug>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_push_feat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ss`
[INFO] [stdout]    --> src/feat.rs:449:13
[INFO] [stdout]     |
[INFO] [stdout] 449 |         let ss = SkipScheme {
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ss`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/ftzrs.rs:162:69
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn run<T: Sized + Hash + Debug, F: FnMut(Feature) -> ()>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `push_feat`
[INFO] [stdout]    --> src/ftzrs.rs:162:78
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn run<T: Sized + Hash + Debug, F: FnMut(Feature) -> ()>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stdout]     |                                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_push_feat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fuzzyindex.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mut item_iter = self.to_sort.drain(..);
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut points: Vec<Labeled<Point, Id>> =
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut r = FuzzySearchIndex {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut sort_slate: &mut Vec<u32> = &mut Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fuzzyindex.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |             let mut points = &mut e.entry;
[INFO] [stdout]     |                 ----^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tfidf`
[INFO] [stdout]    --> src/fuzzyindex.rs:268:21
[INFO] [stdout]     |
[INFO] [stdout] 268 |                 let tfidf: u32 = 512 / ((e.id as f64).log2() as u32 + 1);
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_tfidf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_toks`
[INFO] [stdout]    --> src/fuzzyindex.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let n_toks = point.get_sorted_features().len() as f64;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_toks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `induce_typo` is never used
[INFO] [stdout]   --> src/main.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn induce_typo(word: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrainingAtom` is never constructed
[INFO] [stdout]   --> src/testing.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TrainingAtom<T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Testable` is never used
[INFO] [stdout]   --> src/testing.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait Testable {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzyIndexTest` is never constructed
[INFO] [stdout]   --> src/testing.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct FuzzyIndexTest<Ftzr: CanGram, P: FuzzyPoint, M: Metric<P>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/testing.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | impl<Ftzr: CanGram, P: FuzzyPoint, M: Metric<P>> FuzzyIndexTest<Ftzr, P, M> {
[INFO] [stdout]    | --------------------------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 98 |     pub fn new(lookup: FuzzyIndex<String, Ftzr, P>, params: SearchParams<M>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HnswTester` is never constructed
[INFO] [stdout]    --> src/testing.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct HnswTester<
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/testing.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | / impl<
[INFO] [stdout] 157 | |         Ftzr: CanGram,
[INFO] [stdout] 158 | |         Mtrc: Clone + Metric<Point>,
[INFO] [stdout] 159 | |         Point: FuzzyPoint,
[INFO] [stdout] 160 | |         const M: usize,
[INFO] [stdout] 161 | |         const M0: usize,
[INFO] [stdout] 162 | |     > HnswTester<Ftzr, Mtrc, Point, M, M0>
[INFO] [stdout]     | |__________________________________________- associated function in this implementation
[INFO] [stdout] 163 |   {
[INFO] [stdout] 164 |       pub fn new(ftzr: Ftzr, m: Mtrc, ef: usize, words: Vec<String>) -> Self {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FnvHasher` is never constructed
[INFO] [stdout]   --> src/feat.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct FnvHasher(u64);
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FnvBuildHasher` is never used
[INFO] [stdout]   --> src/feat.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | type FnvBuildHasher = BuildHasherDefault<FnvHasher>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzyEntry` is never constructed
[INFO] [stdout]   --> src/feat.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct FuzzyEntry<T, Id = String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_feature` is never used
[INFO] [stdout]   --> src/feat.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn hash_feature<T: Hash>(t: &T) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream` is never used
[INFO] [stdout]   --> src/feat.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn simhash_stream<W, T: Hash>(words: W) -> u64
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream_u128` is never used
[INFO] [stdout]   --> src/feat.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn simhash_stream_u128<W, T: Hash>(words: W) -> u128
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FeatEntry` is never used
[INFO] [stdout]    --> src/feat.rs:118:10
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Featurizer` is never used
[INFO] [stdout]    --> src/feat.rs:120:11
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub trait Featurizer {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sim` and `ham_dist` are never used
[INFO] [stdout]    --> src/feat.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl<T: Ord, Id> FuzzyEntry<T, Id> {
[INFO] [stdout]     | ---------------------------------- methods in this implementation
[INFO] [stdout] 156 |     #[inline(always)]
[INFO] [stdout] 157 |     pub fn sim(&self, other: &Self) -> f64 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn ham_dist(&self, other: &Self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsciiFeat` is never constructed
[INFO] [stdout]    --> src/feat.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub struct AsciiFeat(u8, u8, u8, u8);
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefaultAscii` is never constructed
[INFO] [stdout]    --> src/feat.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct DefaultAscii;
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CanGram` is never used
[INFO] [stdout]    --> src/feat.rs:243:11
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub trait CanGram {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkipScheme` is never constructed
[INFO] [stdout]    --> src/feat.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct SkipScheme {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `n_gram` is never used
[INFO] [stdout]    --> src/feat.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn n_gram(n: usize) -> SkipScheme {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skipgram` is never used
[INFO] [stdout]    --> src/feat.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn skipgram(a: usize, gap: (usize, usize), b: usize) -> SkipScheme {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BookEnds` is never used
[INFO] [stdout]    --> src/feat.rs:346:6
[INFO] [stdout]     |
[INFO] [stdout] 346 | enum BookEnds {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `uniq` is never used
[INFO] [stdout]    --> src/feat.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | impl BookEnds {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 352 |     fn uniq(&self) -> u64 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookEndsFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:361:12
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub struct BookEndsFtzr<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `book_ends` is never used
[INFO] [stdout]    --> src/feat.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn book_ends<Cg: CanGram>(head_toe: (usize, usize), cg: Cg) -> BookEndsFtzr<Cg> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EmptyFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:395:12
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub struct EmptyFtzr;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:402:12
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub struct MultiFtzr<A, B> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Token` is never constructed
[INFO] [stdout]    --> src/feat.rs:427:12
[INFO] [stdout]     |
[INFO] [stdout] 427 | pub struct Token(u64);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DefaultUnicode` is never constructed
[INFO] [stdout]    --> src/feat.rs:430:12
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub struct DefaultUnicode;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnonFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:470:12
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub struct AnonFtzr<
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Doc` is never constructed
[INFO] [stdout]    --> src/feat.rs:510:12
[INFO] [stdout]     |
[INFO] [stdout] 510 | pub struct Doc<Id, Tok> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DocFtzr` is never constructed
[INFO] [stdout]    --> src/feat.rs:516:12
[INFO] [stdout]     |
[INFO] [stdout] 516 | pub struct DocFtzr<Cg: CanGram, Id, Tok> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/feat.rs:522:12
[INFO] [stdout]     |
[INFO] [stdout] 521 | impl<Cg: CanGram, Id, Tok> DocFtzr<Cg, Id, Tok> {
[INFO] [stdout]     | ----------------------------------------------- associated function in this implementation
[INFO] [stdout] 522 |     pub fn new(cg: Cg) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AndOrOr` is never used
[INFO] [stdout]  --> src/dualiter.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum AndOrOr<T> {
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DualIter` is never constructed
[INFO] [stdout]   --> src/dualiter.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DualIter<L, T, R> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `next_left_right` are never used
[INFO] [stdout]   --> src/dualiter.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | / impl<L, T, R> DualIter<L, T, R>
[INFO] [stdout] 17 | | where
[INFO] [stdout] 18 | |     L: Iterator<Item = T>,
[INFO] [stdout] 19 | |     R: Iterator<Item = T>,
[INFO] [stdout]    | |__________________________- associated functions in this implementation
[INFO] [stdout] 20 |   {
[INFO] [stdout] 21 |       pub fn new(mut l: L, mut r: R) -> DualIter<L, T, R> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |       fn next_left_right(l: &mut L, r: &mut R) -> Option<AndOrOr<T>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Feature` is never constructed
[INFO] [stdout]  --> src/ftzrs.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Feature(u64);
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CanGram` is never used
[INFO] [stdout]   --> src/ftzrs.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait CanGram {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SkipScheme` is never constructed
[INFO] [stdout]   --> src/ftzrs.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SkipScheme {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `n_gram` is never used
[INFO] [stdout]   --> src/ftzrs.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn n_gram(n: usize) -> SkipScheme {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skipgram` is never used
[INFO] [stdout]    --> src/ftzrs.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn skipgram(a: usize, gap: (usize, usize), b: usize) -> SkipScheme {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BookEnds` is never used
[INFO] [stdout]    --> src/ftzrs.rs:110:6
[INFO] [stdout]     |
[INFO] [stdout] 110 | enum BookEnds {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `uniq` is never used
[INFO] [stdout]    --> src/ftzrs.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl BookEnds {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 116 |     fn uniq(&self) -> u64 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookEndsFtzr` is never constructed
[INFO] [stdout]    --> src/ftzrs.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct BookEndsFtzr<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `book_ends` is never used
[INFO] [stdout]    --> src/ftzrs.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn book_ends<Cg: CanGram>(head_toe: (usize, usize), cg: Cg) -> BookEndsFtzr<Cg> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EmptyFtzr` is never constructed
[INFO] [stdout]    --> src/ftzrs.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct EmptyFtzr;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiFtzr` is never constructed
[INFO] [stdout]    --> src/ftzrs.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct MultiFtzr<A, B> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FreqCounterWith` is never constructed
[INFO] [stdout]   --> src/fuzzyindex.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct FreqCounterWith<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `frequencies` are never used
[INFO] [stdout]   --> src/fuzzyindex.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<T: Ord + Debug> FreqCounterWith<T> {
[INFO] [stdout]    | --------------------------------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new() -> FreqCounterWith<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn frequencies<'a, Items>(&'a mut self, items: Items) -> &'a mut Vec<(T, u32)>
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScratchPad` is never constructed
[INFO] [stdout]   --> src/fuzzyindex.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ScratchPad {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/fuzzyindex.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl ScratchPad {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 67 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchParams` is never constructed
[INFO] [stdout]   --> src/fuzzyindex.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct SearchParams<M> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_metric` is never used
[INFO] [stdout]    --> src/fuzzyindex.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout]  90 | impl<M1> SearchParams<M1> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_metric<M2>(&self, m: M2) -> SearchParams<M2> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzySearchIndex` is never constructed
[INFO] [stdout]    --> src/fuzzyindex.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct FuzzySearchIndex<Origin, Tok, Id, Ftzr, Point> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FuzzyIndex` is never used
[INFO] [stdout]    --> src/fuzzyindex.rs:127:10
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `freq_of`, `compress_index`, `compress_step`, and `best_match` are never used
[INFO] [stdout]    --> src/fuzzyindex.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | / impl<Origin, Tok, Id, Ftzr, Point> FuzzySearchIndex<Origin, Tok, Id, Ftzr, Point>
[INFO] [stdout] 131 | | where
[INFO] [stdout] 132 | |     Tok: Sized + Hash + Debug,
[INFO] [stdout] 133 | |     Origin: HasFeatures<Tok = Tok> + HasName<Id = Id> + Eq + Hash,
[INFO] [stdout] 134 | |     Point: FuzzyPoint,
[INFO] [stdout] 135 | |     Ftzr: CanGram,
[INFO] [stdout] 136 | |     Id: Clone,
[INFO] [stdout]     | |______________- associated items in this implementation
[INFO] [stdout] 137 |   {
[INFO] [stdout] 138 |       pub fn new<W: Iterator<Item = Origin>>(ftzr: Ftzr, sequences: W) -> Self {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |       fn freq_of(&self, f: &Feature) -> usize {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |       pub fn compress_index(&mut self, cuttoff: usize) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |       fn compress_step(&mut self, cuttoff: usize) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |       pub fn best_match<M: Metric<Point>>(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FuzzyPoint` is never used
[INFO] [stdout]   --> src/fuzzypoint.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait FuzzyPoint {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimplePoint` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SimplePoint {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Labeled` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Labeled<Point, Id = String> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Metric` is never used
[INFO] [stdout]   --> src/fuzzypoint.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait Metric<P> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Jaccard` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct Jaccard;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Counted` is never constructed
[INFO] [stdout]   --> src/fuzzypoint.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct Counted<M> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/fuzzypoint.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl<M> Counted<M> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 96 |     pub fn new(m: M) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimHash` is never constructed
[INFO] [stdout]    --> src/fuzzypoint.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct SimHash {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_feature` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn hash_feature<T: Hash>(t: &T) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn simhash_stream<W, T: Hash>(words: W) -> u64
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simhash_stream_u128` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn simhash_stream_u128<W, T: Hash>(words: W) -> u128
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hamming` is never constructed
[INFO] [stdout]    --> src/fuzzypoint.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct Hamming;
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HnswPoint` is never constructed
[INFO] [stdout]    --> src/fuzzypoint.rs:218:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct HnswPoint<M: Metric<P>, P: FuzzyPoint> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/fuzzypoint.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl<P: FuzzyPoint, M: Metric<P>> HnswPoint<M, P> {
[INFO] [stdout]     | ------------------------------------------------- associated function in this implementation
[INFO] [stdout] 224 |     pub fn new(m: M, p: P) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HasFeatures` is never used
[INFO] [stdout]  --> src/hasfeatures.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait HasFeatures {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HasName` is never used
[INFO] [stdout]   --> src/hasfeatures.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait HasName {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entry` is never constructed
[INFO] [stdout]   --> src/utils.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Entry<Id, T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_entry` is never used
[INFO] [stdout]   --> src/utils.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn get_entry<'a, Id: Ord, T>(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shuffle` is never used
[INFO] [stdout]   --> src/utils.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn shuffle<T: Hash + Clone>(items: &[T]) -> Vec<T> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rec_rev_str` is never used
[INFO] [stdout]   --> src/utils.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn rec_rev_str(mut s: String) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_lexicon` is never used
[INFO] [stdout]   --> src/utils.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn open_lexicon(path: &Path) -> HashSet<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `palindrome_lexicon` is never used
[INFO] [stdout]   --> src/utils.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn palindrome_lexicon(lx: &mut HashSet<String>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/feat.rs:118:23
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout]     |                       ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: remove this bound
[INFO] [stdout]     |
[INFO] [stdout] 118 - pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout] 118 + pub type FeatEntry<F> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stdout]     |
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<<F as /* Trait */>::Feat, F::Id>;
[INFO] [stdout]     |                                                +  +++++++++++++++
[INFO] [stdout] help: fully qualify this associated type
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, <F as /* Trait */>::Id>;
[INFO] [stdout]     |                                                         +  +++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/feat.rs:312:25
[INFO] [stdout]     |
[INFO] [stdout] 312 |                         &s[x..y].hash(&mut hasher);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 312 |                         let _ = &s[x..y].hash(&mut hasher);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/ftzrs.rs:76:25
[INFO] [stdout]    |
[INFO] [stdout] 76 |                         &s[x..y].hash(&mut hasher);
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 76 |                         let _ = &s[x..y].hash(&mut hasher);
[INFO] [stdout]    |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stdout]    --> src/fuzzyindex.rs:127:29
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stdout]     |                             ^^^^^^^   ^^^^^^^^^^^               ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stdout]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stdout] help: remove these bounds
[INFO] [stdout]     |
[INFO] [stdout] 127 - pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stdout] 127 + pub type FuzzyIndex<Origin, Ftzr, Point> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.56s
[INFO] running `Command { std: "docker" "inspect" "338899b84c6f480b75d57febff9ef4a90ad198a3f5bc0258e2510e9ece24156c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "338899b84c6f480b75d57febff9ef4a90ad198a3f5bc0258e2510e9ece24156c", kill_on_drop: false }`
[INFO] [stdout] 338899b84c6f480b75d57febff9ef4a90ad198a3f5bc0258e2510e9ece24156c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] a4c6bf8d845ed0f4d233c99fa9edf09b8780431a6b434d33e1995fc9bc36d69b
[INFO] running `Command { std: "docker" "start" "-a" "a4c6bf8d845ed0f4d233c99fa9edf09b8780431a6b434d33e1995fc9bc36d69b", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]  --> src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::collections::HashSet;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]  --> src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::fs::File;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::prelude::*`
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::Path`
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::path::Path;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FuzzyIndexTest`, `HnswTester`, `Testable`, and `TrainingAtom`
[INFO] [stderr]   --> src/main.rs:10:15
[INFO] [stderr]    |
[INFO] [stderr] 10 | use testing::{FuzzyIndexTest, HnswTester, Testable, TrainingAtom};
[INFO] [stderr]    |               ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FxHasher32`
[INFO] [stderr]  --> src/feat.rs:2:14
[INFO] [stderr]   |
[INFO] [stderr] 2 | use fxhash::{FxHasher32, FxHasher64};
[INFO] [stderr]   |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::mem::transmute`
[INFO] [stderr]   --> src/feat.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::mem::transmute;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around block return value
[INFO] [stderr]    --> src/feat.rs:175:9
[INFO] [stderr]     |
[INFO] [stderr] 175 |         (n as f64 / d as f64)
[INFO] [stderr]     |         ^                   ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 175 -         (n as f64 / d as f64)
[INFO] [stderr] 175 +         n as f64 / d as f64 
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: type parameter `G_Id` should have an upper camel case name
[INFO] [stderr]    --> src/feat.rs:471:5
[INFO] [stderr]     |
[INFO] [stderr] 471 |     G_Id: Fn(Origin) -> Id,
[INFO] [stderr]     |     ^^^^ help: convert the identifier to upper camel case: `GId`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type parameter `G_T` should have an upper camel case name
[INFO] [stderr]    --> src/feat.rs:472:5
[INFO] [stderr]     |
[INFO] [stderr] 472 |     G_T: Fn(&Origin) -> Vec<Tok>,
[INFO] [stderr]     |     ^^^ help: convert the identifier to upper camel case: `GT`
[INFO] [stderr] 
[INFO] [stderr] warning: type parameter `U_T` should have an upper camel case name
[INFO] [stderr]    --> src/feat.rs:473:5
[INFO] [stderr]     |
[INFO] [stderr] 473 |     U_T: CanGram,
[INFO] [stderr]     |     ^^^ help: convert the identifier to upper camel case: `UT`
[INFO] [stderr] 
[INFO] [stderr] warning: type parameter `G_Id` should have an upper camel case name
[INFO] [stderr]    --> src/feat.rs:484:6
[INFO] [stderr]     |
[INFO] [stderr] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stderr]     |      ^^^^ help: convert the identifier to upper camel case: `GId`
[INFO] [stderr] 
[INFO] [stderr] warning: type parameter `G_T` should have an upper camel case name
[INFO] [stderr]    --> src/feat.rs:484:12
[INFO] [stderr]     |
[INFO] [stderr] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stderr]     |            ^^^ help: convert the identifier to upper camel case: `GT`
[INFO] [stderr] 
[INFO] [stderr] warning: type parameter `U_T` should have an upper camel case name
[INFO] [stderr]    --> src/feat.rs:484:17
[INFO] [stderr]     |
[INFO] [stderr] 484 | impl<G_Id, G_T, U_T, Origin, Id, Tok> Featurizer for AnonFtzr<G_Id, G_T, U_T, Origin, Id, Tok>
[INFO] [stderr]     |                 ^^^ help: convert the identifier to upper camel case: `UT`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `dualiter::*`
[INFO] [stderr]   --> src/main.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use dualiter::*;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CanGram`, `EmptyFtzr`, `MultiFtzr`, `book_ends`, `n_gram`, and `skipgram`
[INFO] [stderr]   --> src/main.rs:22:13
[INFO] [stderr]    |
[INFO] [stderr] 22 | use ftzrs::{book_ends, n_gram, skipgram, CanGram, EmptyFtzr, MultiFtzr};
[INFO] [stderr]    |             ^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BuildHasherDefault` and `Hasher`
[INFO] [stderr]  --> src/fuzzyindex.rs:3:17
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stderr]   |                 ^^^^^^^^^^^^^^^^^^        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FuzzyIndex` and `SearchParams`
[INFO] [stderr]   --> src/main.rs:25:18
[INFO] [stderr]    |
[INFO] [stderr] 25 | use fuzzyindex::{FuzzyIndex, SearchParams};
[INFO] [stderr]    |                  ^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Counted`, `FuzzyPoint`, `Hamming`, `Jaccard`, `Labeled`, `Metric`, `SimHash`, and `SimplePoint`
[INFO] [stderr]   --> src/main.rs:28:18
[INFO] [stderr]    |
[INFO] [stderr] 28 | use fuzzypoint::{Counted, FuzzyPoint, Hamming, Jaccard, Labeled, Metric, SimHash, SimplePoint};
[INFO] [stderr]    |                  ^^^^^^^  ^^^^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^  ^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::fuzzypoint::*`
[INFO] [stderr]  --> src/hasfeatures.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::fuzzypoint::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BuildHasherDefault` and `Hasher`
[INFO] [stderr]  --> src/hasfeatures.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::hash::{BuildHasherDefault, Hash, Hasher};
[INFO] [stderr]   |                 ^^^^^^^^^^^^^^^^^^        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::marker::PhantomData`
[INFO] [stderr]  --> src/hasfeatures.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::marker::PhantomData;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HasFeatures` and `HasName`
[INFO] [stderr]   --> src/main.rs:31:19
[INFO] [stderr]    |
[INFO] [stderr] 31 | use hasfeatures::{HasFeatures, HasName};
[INFO] [stderr]    |                   ^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Entry`, `get_entry`, `open_lexicon`, `rec_rev_str`, and `shuffle`
[INFO] [stderr]   --> src/main.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 | use utils::{get_entry, open_lexicon, rec_rev_str, shuffle, Entry};
[INFO] [stderr]    |             ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ta`
[INFO] [stderr]   --> src/testing.rs:22:33
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn is_false_negative(&self, ta: &TrainingAtom<Self::Item>, a: &Self::Item) -> bool {
[INFO] [stderr]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ta`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]   --> src/testing.rs:22:64
[INFO] [stderr]    |
[INFO] [stderr] 22 |     fn is_false_negative(&self, ta: &TrainingAtom<Self::Item>, a: &Self::Item) -> bool {
[INFO] [stderr]    |                                                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]   --> src/testing.rs:83:45
[INFO] [stderr]    |
[INFO] [stderr] 83 |     fn average_comparisons<Data>(&mut self, data: Data) -> f32
[INFO] [stderr]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]    --> src/testing.rs:230:17
[INFO] [stderr]     |
[INFO] [stderr] 230 |             let n = hn.nearest(&point, self.ef, &mut self.searcher, &mut neighbors)[0];
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sim_a`
[INFO] [stderr]    --> src/feat.rs:140:13
[INFO] [stderr]     |
[INFO] [stderr] 140 |         let sim_a = 0;
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sim_a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sim_b`
[INFO] [stderr]    --> src/feat.rs:145:13
[INFO] [stderr]     |
[INFO] [stderr] 145 |         let sim_b = 0; //simhash_stream(vbow.iter());
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sim_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]    --> src/feat.rs:398:70
[INFO] [stderr]     |
[INFO] [stderr] 398 |     fn run<F: FnMut(u64) -> (), T: Sized + Hash + fmt::Debug>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stderr]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `push_feat`
[INFO] [stderr]    --> src/feat.rs:398:79
[INFO] [stderr]     |
[INFO] [stderr] 398 |     fn run<F: FnMut(u64) -> (), T: Sized + Hash + fmt::Debug>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stderr]     |                                                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_push_feat`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ss`
[INFO] [stderr]    --> src/feat.rs:449:13
[INFO] [stderr]     |
[INFO] [stderr] 449 |         let ss = SkipScheme {
[INFO] [stderr]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ss`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]    --> src/ftzrs.rs:162:69
[INFO] [stderr]     |
[INFO] [stderr] 162 |     fn run<T: Sized + Hash + Debug, F: FnMut(Feature) -> ()>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stderr]     |                                                                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `push_feat`
[INFO] [stderr]    --> src/ftzrs.rs:162:78
[INFO] [stderr]     |
[INFO] [stderr] 162 |     fn run<T: Sized + Hash + Debug, F: FnMut(Feature) -> ()>(&self, s: &[T], push_feat: &mut F) {}
[INFO] [stderr]     |                                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_push_feat`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/fuzzyindex.rs:35:13
[INFO] [stderr]    |
[INFO] [stderr] 35 |         let mut item_iter = self.to_sort.drain(..);
[INFO] [stderr]    |             ----^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/fuzzyindex.rs:141:13
[INFO] [stderr]     |
[INFO] [stderr] 141 |         let mut points: Vec<Labeled<Point, Id>> =
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/fuzzyindex.rs:167:13
[INFO] [stderr]     |
[INFO] [stderr] 167 |         let mut r = FuzzySearchIndex {
[INFO] [stderr]     |             ----^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/fuzzyindex.rs:228:13
[INFO] [stderr]     |
[INFO] [stderr] 228 |         let mut sort_slate: &mut Vec<u32> = &mut Vec::new();
[INFO] [stderr]     |             ----^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/fuzzyindex.rs:230:17
[INFO] [stderr]     |
[INFO] [stderr] 230 |             let mut points = &mut e.entry;
[INFO] [stderr]     |                 ----^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tfidf`
[INFO] [stderr]    --> src/fuzzyindex.rs:268:21
[INFO] [stderr]     |
[INFO] [stderr] 268 |                 let tfidf: u32 = 512 / ((e.id as f64).log2() as u32 + 1);
[INFO] [stderr]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_tfidf`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n_toks`
[INFO] [stderr]    --> src/fuzzyindex.rs:260:13
[INFO] [stderr]     |
[INFO] [stderr] 260 |         let n_toks = point.get_sorted_features().len() as f64;
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_toks`
[INFO] [stderr] 
[INFO] [stderr] warning: function `induce_typo` is never used
[INFO] [stderr]   --> src/main.rs:37:4
[INFO] [stderr]    |
[INFO] [stderr] 37 | fn induce_typo(word: &str) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TrainingAtom` is never constructed
[INFO] [stderr]   --> src/testing.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct TrainingAtom<T> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Testable` is never used
[INFO] [stderr]   --> src/testing.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub trait Testable {
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FuzzyIndexTest` is never constructed
[INFO] [stderr]   --> src/testing.rs:91:12
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub struct FuzzyIndexTest<Ftzr: CanGram, P: FuzzyPoint, M: Metric<P>> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/testing.rs:98:12
[INFO] [stderr]    |
[INFO] [stderr] 97 | impl<Ftzr: CanGram, P: FuzzyPoint, M: Metric<P>> FuzzyIndexTest<Ftzr, P, M> {
[INFO] [stderr]    | --------------------------------------------------------------------------- associated function in this implementation
[INFO] [stderr] 98 |     pub fn new(lookup: FuzzyIndex<String, Ftzr, P>, params: SearchParams<M>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HnswTester` is never constructed
[INFO] [stderr]    --> src/testing.rs:141:12
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub struct HnswTester<
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/testing.rs:164:12
[INFO] [stderr]     |
[INFO] [stderr] 156 | / impl<
[INFO] [stderr] 157 | |         Ftzr: CanGram,
[INFO] [stderr] 158 | |         Mtrc: Clone + Metric<Point>,
[INFO] [stderr] 159 | |         Point: FuzzyPoint,
[INFO] [stderr] 160 | |         const M: usize,
[INFO] [stderr] 161 | |         const M0: usize,
[INFO] [stderr] 162 | |     > HnswTester<Ftzr, Mtrc, Point, M, M0>
[INFO] [stderr]     | |__________________________________________- associated function in this implementation
[INFO] [stderr] 163 |   {
[INFO] [stderr] 164 |       pub fn new(ftzr: Ftzr, m: Mtrc, ef: usize, words: Vec<String>) -> Self {
[INFO] [stderr]     |              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FnvHasher` is never constructed
[INFO] [stderr]   --> src/feat.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | struct FnvHasher(u64);
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `FnvBuildHasher` is never used
[INFO] [stderr]   --> src/feat.rs:45:6
[INFO] [stderr]    |
[INFO] [stderr] 45 | type FnvBuildHasher = BuildHasherDefault<FnvHasher>;
[INFO] [stderr]    |      ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FuzzyEntry` is never constructed
[INFO] [stderr]   --> src/feat.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub struct FuzzyEntry<T, Id = String> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hash_feature` is never used
[INFO] [stderr]   --> src/feat.rs:55:4
[INFO] [stderr]    |
[INFO] [stderr] 55 | fn hash_feature<T: Hash>(t: &T) -> u64 {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simhash_stream` is never used
[INFO] [stderr]   --> src/feat.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn simhash_stream<W, T: Hash>(words: W) -> u64
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simhash_stream_u128` is never used
[INFO] [stderr]   --> src/feat.rs:90:8
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub fn simhash_stream_u128<W, T: Hash>(words: W) -> u128
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `FeatEntry` is never used
[INFO] [stderr]    --> src/feat.rs:118:10
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stderr]     |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Featurizer` is never used
[INFO] [stderr]    --> src/feat.rs:120:11
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub trait Featurizer {
[INFO] [stderr]     |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `sim` and `ham_dist` are never used
[INFO] [stderr]    --> src/feat.rs:157:12
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl<T: Ord, Id> FuzzyEntry<T, Id> {
[INFO] [stderr]     | ---------------------------------- methods in this implementation
[INFO] [stderr] 156 |     #[inline(always)]
[INFO] [stderr] 157 |     pub fn sim(&self, other: &Self) -> f64 {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn ham_dist(&self, other: &Self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AsciiFeat` is never constructed
[INFO] [stderr]    --> src/feat.rs:183:12
[INFO] [stderr]     |
[INFO] [stderr] 183 | pub struct AsciiFeat(u8, u8, u8, u8);
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DefaultAscii` is never constructed
[INFO] [stderr]    --> src/feat.rs:205:12
[INFO] [stderr]     |
[INFO] [stderr] 205 | pub struct DefaultAscii;
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `CanGram` is never used
[INFO] [stderr]    --> src/feat.rs:243:11
[INFO] [stderr]     |
[INFO] [stderr] 243 | pub trait CanGram {
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SkipScheme` is never constructed
[INFO] [stderr]    --> src/feat.rs:248:12
[INFO] [stderr]     |
[INFO] [stderr] 248 | pub struct SkipScheme {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `n_gram` is never used
[INFO] [stderr]    --> src/feat.rs:329:8
[INFO] [stderr]     |
[INFO] [stderr] 329 | pub fn n_gram(n: usize) -> SkipScheme {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `skipgram` is never used
[INFO] [stderr]    --> src/feat.rs:337:8
[INFO] [stderr]     |
[INFO] [stderr] 337 | pub fn skipgram(a: usize, gap: (usize, usize), b: usize) -> SkipScheme {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BookEnds` is never used
[INFO] [stderr]    --> src/feat.rs:346:6
[INFO] [stderr]     |
[INFO] [stderr] 346 | enum BookEnds {
[INFO] [stderr]     |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `uniq` is never used
[INFO] [stderr]    --> src/feat.rs:352:8
[INFO] [stderr]     |
[INFO] [stderr] 351 | impl BookEnds {
[INFO] [stderr]     | ------------- method in this implementation
[INFO] [stderr] 352 |     fn uniq(&self) -> u64 {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BookEndsFtzr` is never constructed
[INFO] [stderr]    --> src/feat.rs:361:12
[INFO] [stderr]     |
[INFO] [stderr] 361 | pub struct BookEndsFtzr<T> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `book_ends` is never used
[INFO] [stderr]    --> src/feat.rs:367:8
[INFO] [stderr]     |
[INFO] [stderr] 367 | pub fn book_ends<Cg: CanGram>(head_toe: (usize, usize), cg: Cg) -> BookEndsFtzr<Cg> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `EmptyFtzr` is never constructed
[INFO] [stderr]    --> src/feat.rs:395:12
[INFO] [stderr]     |
[INFO] [stderr] 395 | pub struct EmptyFtzr;
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MultiFtzr` is never constructed
[INFO] [stderr]    --> src/feat.rs:402:12
[INFO] [stderr]     |
[INFO] [stderr] 402 | pub struct MultiFtzr<A, B> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Token` is never constructed
[INFO] [stderr]    --> src/feat.rs:427:12
[INFO] [stderr]     |
[INFO] [stderr] 427 | pub struct Token(u64);
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DefaultUnicode` is never constructed
[INFO] [stderr]    --> src/feat.rs:430:12
[INFO] [stderr]     |
[INFO] [stderr] 430 | pub struct DefaultUnicode;
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AnonFtzr` is never constructed
[INFO] [stderr]    --> src/feat.rs:470:12
[INFO] [stderr]     |
[INFO] [stderr] 470 | pub struct AnonFtzr<
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Doc` is never constructed
[INFO] [stderr]    --> src/feat.rs:510:12
[INFO] [stderr]     |
[INFO] [stderr] 510 | pub struct Doc<Id, Tok> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DocFtzr` is never constructed
[INFO] [stderr]    --> src/feat.rs:516:12
[INFO] [stderr]     |
[INFO] [stderr] 516 | pub struct DocFtzr<Cg: CanGram, Id, Tok> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/feat.rs:522:12
[INFO] [stderr]     |
[INFO] [stderr] 521 | impl<Cg: CanGram, Id, Tok> DocFtzr<Cg, Id, Tok> {
[INFO] [stderr]     | ----------------------------------------------- associated function in this implementation
[INFO] [stderr] 522 |     pub fn new(cg: Cg) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `AndOrOr` is never used
[INFO] [stderr]  --> src/dualiter.rs:4:10
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub enum AndOrOr<T> {
[INFO] [stderr]   |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DualIter` is never constructed
[INFO] [stderr]   --> src/dualiter.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct DualIter<L, T, R> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `next_left_right` are never used
[INFO] [stderr]   --> src/dualiter.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | / impl<L, T, R> DualIter<L, T, R>
[INFO] [stderr] 17 | | where
[INFO] [stderr] 18 | |     L: Iterator<Item = T>,
[INFO] [stderr] 19 | |     R: Iterator<Item = T>,
[INFO] [stderr]    | |__________________________- associated functions in this implementation
[INFO] [stderr] 20 |   {
[INFO] [stderr] 21 |       pub fn new(mut l: L, mut r: R) -> DualIter<L, T, R> {
[INFO] [stderr]    |              ^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |       fn next_left_right(l: &mut L, r: &mut R) -> Option<AndOrOr<T>> {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Feature` is never constructed
[INFO] [stderr]  --> src/ftzrs.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct Feature(u64);
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `CanGram` is never used
[INFO] [stderr]   --> src/ftzrs.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub trait CanGram {
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SkipScheme` is never constructed
[INFO] [stderr]   --> src/ftzrs.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct SkipScheme {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `n_gram` is never used
[INFO] [stderr]   --> src/ftzrs.rs:93:8
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub fn n_gram(n: usize) -> SkipScheme {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `skipgram` is never used
[INFO] [stderr]    --> src/ftzrs.rs:101:8
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub fn skipgram(a: usize, gap: (usize, usize), b: usize) -> SkipScheme {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BookEnds` is never used
[INFO] [stderr]    --> src/ftzrs.rs:110:6
[INFO] [stderr]     |
[INFO] [stderr] 110 | enum BookEnds {
[INFO] [stderr]     |      ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `uniq` is never used
[INFO] [stderr]    --> src/ftzrs.rs:116:8
[INFO] [stderr]     |
[INFO] [stderr] 115 | impl BookEnds {
[INFO] [stderr]     | ------------- method in this implementation
[INFO] [stderr] 116 |     fn uniq(&self) -> u64 {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BookEndsFtzr` is never constructed
[INFO] [stderr]    --> src/ftzrs.rs:125:12
[INFO] [stderr]     |
[INFO] [stderr] 125 | pub struct BookEndsFtzr<T> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `book_ends` is never used
[INFO] [stderr]    --> src/ftzrs.rs:131:8
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub fn book_ends<Cg: CanGram>(head_toe: (usize, usize), cg: Cg) -> BookEndsFtzr<Cg> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `EmptyFtzr` is never constructed
[INFO] [stderr]    --> src/ftzrs.rs:159:12
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub struct EmptyFtzr;
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MultiFtzr` is never constructed
[INFO] [stderr]    --> src/ftzrs.rs:166:12
[INFO] [stderr]     |
[INFO] [stderr] 166 | pub struct MultiFtzr<A, B> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FreqCounterWith` is never constructed
[INFO] [stderr]   --> src/fuzzyindex.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | struct FreqCounterWith<T> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `frequencies` are never used
[INFO] [stderr]   --> src/fuzzyindex.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl<T: Ord + Debug> FreqCounterWith<T> {
[INFO] [stderr]    | --------------------------------------- associated items in this implementation
[INFO] [stderr] 19 |     pub fn new() -> FreqCounterWith<T> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     fn frequencies<'a, Items>(&'a mut self, items: Items) -> &'a mut Vec<(T, u32)>
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ScratchPad` is never constructed
[INFO] [stderr]   --> src/fuzzyindex.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub struct ScratchPad {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/fuzzyindex.rs:67:12
[INFO] [stderr]    |
[INFO] [stderr] 66 | impl ScratchPad {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 67 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SearchParams` is never constructed
[INFO] [stderr]   --> src/fuzzyindex.rs:81:12
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub struct SearchParams<M> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `with_metric` is never used
[INFO] [stderr]    --> src/fuzzyindex.rs:107:12
[INFO] [stderr]     |
[INFO] [stderr]  90 | impl<M1> SearchParams<M1> {
[INFO] [stderr]     | ------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn with_metric<M2>(&self, m: M2) -> SearchParams<M2> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FuzzySearchIndex` is never constructed
[INFO] [stderr]    --> src/fuzzyindex.rs:120:12
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub struct FuzzySearchIndex<Origin, Tok, Id, Ftzr, Point> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `FuzzyIndex` is never used
[INFO] [stderr]    --> src/fuzzyindex.rs:127:10
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `freq_of`, `compress_index`, `compress_step`, and `best_match` are never used
[INFO] [stderr]    --> src/fuzzyindex.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 130 | / impl<Origin, Tok, Id, Ftzr, Point> FuzzySearchIndex<Origin, Tok, Id, Ftzr, Point>
[INFO] [stderr] 131 | | where
[INFO] [stderr] 132 | |     Tok: Sized + Hash + Debug,
[INFO] [stderr] 133 | |     Origin: HasFeatures<Tok = Tok> + HasName<Id = Id> + Eq + Hash,
[INFO] [stderr] 134 | |     Point: FuzzyPoint,
[INFO] [stderr] 135 | |     Ftzr: CanGram,
[INFO] [stderr] 136 | |     Id: Clone,
[INFO] [stderr]     | |______________- associated items in this implementation
[INFO] [stderr] 137 |   {
[INFO] [stderr] 138 |       pub fn new<W: Iterator<Item = Origin>>(ftzr: Ftzr, sequences: W) -> Self {
[INFO] [stderr]     |              ^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |       fn freq_of(&self, f: &Feature) -> usize {
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 189 |       pub fn compress_index(&mut self, cuttoff: usize) {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |       fn compress_step(&mut self, cuttoff: usize) {
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 242 |       pub fn best_match<M: Metric<Point>>(
[INFO] [stderr]     |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `FuzzyPoint` is never used
[INFO] [stderr]   --> src/fuzzypoint.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub trait FuzzyPoint {
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SimplePoint` is never constructed
[INFO] [stderr]   --> src/fuzzypoint.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct SimplePoint {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Labeled` is never constructed
[INFO] [stderr]   --> src/fuzzypoint.rs:40:12
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub struct Labeled<Point, Id = String> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Metric` is never used
[INFO] [stderr]   --> src/fuzzypoint.rs:45:11
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub trait Metric<P> {
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Jaccard` is never constructed
[INFO] [stderr]   --> src/fuzzypoint.rs:51:12
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub struct Jaccard;
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Counted` is never constructed
[INFO] [stderr]   --> src/fuzzypoint.rs:90:12
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub struct Counted<M> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/fuzzypoint.rs:96:12
[INFO] [stderr]    |
[INFO] [stderr] 95 | impl<M> Counted<M> {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] 96 |     pub fn new(m: M) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SimHash` is never constructed
[INFO] [stderr]    --> src/fuzzypoint.rs:118:12
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub struct SimHash {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hash_feature` is never used
[INFO] [stderr]    --> src/fuzzypoint.rs:123:4
[INFO] [stderr]     |
[INFO] [stderr] 123 | fn hash_feature<T: Hash>(t: &T) -> u64 {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simhash_stream` is never used
[INFO] [stderr]    --> src/fuzzypoint.rs:130:8
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub fn simhash_stream<W, T: Hash>(words: W) -> u64
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simhash_stream_u128` is never used
[INFO] [stderr]    --> src/fuzzypoint.rs:158:8
[INFO] [stderr]     |
[INFO] [stderr] 158 | pub fn simhash_stream_u128<W, T: Hash>(words: W) -> u128
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Hamming` is never constructed
[INFO] [stderr]    --> src/fuzzypoint.rs:207:12
[INFO] [stderr]     |
[INFO] [stderr] 207 | pub struct Hamming;
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HnswPoint` is never constructed
[INFO] [stderr]    --> src/fuzzypoint.rs:218:12
[INFO] [stderr]     |
[INFO] [stderr] 218 | pub struct HnswPoint<M: Metric<P>, P: FuzzyPoint> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/fuzzypoint.rs:224:12
[INFO] [stderr]     |
[INFO] [stderr] 223 | impl<P: FuzzyPoint, M: Metric<P>> HnswPoint<M, P> {
[INFO] [stderr]     | ------------------------------------------------- associated function in this implementation
[INFO] [stderr] 224 |     pub fn new(m: M, p: P) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `HasFeatures` is never used
[INFO] [stderr]  --> src/hasfeatures.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub trait HasFeatures {
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `HasName` is never used
[INFO] [stderr]   --> src/hasfeatures.rs:14:11
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub trait HasName {
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Entry` is never constructed
[INFO] [stderr]   --> src/utils.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct Entry<Id, T> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_entry` is never used
[INFO] [stderr]   --> src/utils.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn get_entry<'a, Id: Ord, T>(
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `shuffle` is never used
[INFO] [stderr]   --> src/utils.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub fn shuffle<T: Hash + Clone>(items: &[T]) -> Vec<T> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rec_rev_str` is never used
[INFO] [stderr]   --> src/utils.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn rec_rev_str(mut s: String) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `open_lexicon` is never used
[INFO] [stderr]   --> src/utils.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub fn open_lexicon(path: &Path) -> HashSet<String> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `palindrome_lexicon` is never used
[INFO] [stderr]   --> src/utils.rs:94:4
[INFO] [stderr]    |
[INFO] [stderr] 94 | fn palindrome_lexicon(lx: &mut HashSet<String>) {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stderr]    --> src/feat.rs:118:23
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stderr]     |                       ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stderr]     |
[INFO] [stderr]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stderr]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stderr]     = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stderr] help: remove this bound
[INFO] [stderr]     |
[INFO] [stderr] 118 - pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stderr] 118 + pub type FeatEntry<F> = FuzzyEntry<F::Feat, F::Id>;
[INFO] [stderr]     |
[INFO] [stderr] help: fully qualify this associated type
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<<F as /* Trait */>::Feat, F::Id>;
[INFO] [stderr]     |                                                +  +++++++++++++++
[INFO] [stderr] help: fully qualify this associated type
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub type FeatEntry<F: Featurizer> = FuzzyEntry<F::Feat, <F as /* Trait */>::Id>;
[INFO] [stderr]     |                                                         +  +++++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused borrow that must be used
[INFO] [stderr]    --> src/feat.rs:312:25
[INFO] [stderr]     |
[INFO] [stderr] 312 |                         &s[x..y].hash(&mut hasher);
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 312 |                         let _ = &s[x..y].hash(&mut hasher);
[INFO] [stderr]     |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused borrow that must be used
[INFO] [stderr]   --> src/ftzrs.rs:76:25
[INFO] [stderr]    |
[INFO] [stderr] 76 |                         &s[x..y].hash(&mut hasher);
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stderr]    |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 76 |                         let _ = &s[x..y].hash(&mut hasher);
[INFO] [stderr]    |                         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: bounds on generic parameters in type aliases are not enforced
[INFO] [stderr]    --> src/fuzzyindex.rs:127:29
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stderr]     |                             ^^^^^^^   ^^^^^^^^^^^               ^^^^^^^^^^ will not be checked at usage sites of the type alias
[INFO] [stderr]     |
[INFO] [stderr]     = note: this is a known limitation of the type checker that may be lifted in a future edition.
[INFO] [stderr]             see issue #112792 <https://github.com/rust-lang/rust/issues/112792> for more information
[INFO] [stderr] help: remove these bounds
[INFO] [stderr]     |
[INFO] [stderr] 127 - pub type FuzzyIndex<Origin: HasName + HasFeatures, Ftzr, Point: FuzzyPoint> =
[INFO] [stderr] 127 + pub type FuzzyIndex<Origin, Ftzr, Point> =
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `senor_borroso` (bin "senor_borroso" test) generated 125 warnings (run `cargo fix --bin "senor_borroso" -p senor_borroso --tests` to apply 37 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/senor_borroso-e96572f95d8c431c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a4c6bf8d845ed0f4d233c99fa9edf09b8780431a6b434d33e1995fc9bc36d69b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4c6bf8d845ed0f4d233c99fa9edf09b8780431a6b434d33e1995fc9bc36d69b", kill_on_drop: false }`
[INFO] [stdout] a4c6bf8d845ed0f4d233c99fa9edf09b8780431a6b434d33e1995fc9bc36d69b
