[INFO] cloning repository https://github.com/gandeevan/onebrc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gandeevan/onebrc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgandeevan%2Fonebrc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgandeevan%2Fonebrc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7fb37ad3508b8c6083e1af1948cb88fbf94c9e8b
[INFO] checking gandeevan/onebrc against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgandeevan%2Fonebrc" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-1-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/gandeevan/onebrc
[INFO] finished tweaking git repo https://github.com/gandeevan/onebrc
[INFO] tweaked toml for git repo https://github.com/gandeevan/onebrc written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gandeevan/onebrc on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gandeevan/onebrc 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_logger v0.11.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b85a41e96c3a03ad083696f5c30492a2f8cc4a8ef5d4b3666e3619cb55e7133b
[INFO] running `Command { std: "docker" "start" "-a" "b85a41e96c3a03ad083696f5c30492a2f8cc4a8ef5d4b3666e3619cb55e7133b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b85a41e96c3a03ad083696f5c30492a2f8cc4a8ef5d4b3666e3619cb55e7133b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b85a41e96c3a03ad083696f5c30492a2f8cc4a8ef5d4b3666e3619cb55e7133b", kill_on_drop: false }`
[INFO] [stdout] b85a41e96c3a03ad083696f5c30492a2f8cc4a8ef5d4b3666e3619cb55e7133b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2a1e59930f24c8d31d37d13b1dc71921626aa51b922e367e1d14937c29db6cc2
[INFO] running `Command { std: "docker" "start" "-a" "2a1e59930f24c8d31d37d13b1dc71921626aa51b922e367e1d14937c29db6cc2", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.7.1
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]    Compiling libc v0.2.152
[INFO] [stderr]     Checking utf8parse v0.2.1
[INFO] [stderr]     Checking anstyle-query v1.0.2
[INFO] [stderr]     Checking anstyle v1.0.4
[INFO] [stderr]     Checking log v0.4.20
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking anstyle-parse v0.2.3
[INFO] [stderr]     Checking anstream v0.6.11
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking memmap2 v0.9.4
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking env_filter v0.1.0
[INFO] [stderr]     Checking env_logger v0.11.0
[INFO] [stderr]     Checking onebrc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> src/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt;
[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: `core::hash::Hash`
[INFO] [stdout]  --> src/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::BuildHasherDefault`
[INFO] [stdout]  --> src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::BuildHasherDefault;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/attempt1.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, info};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `JoinHandle`, and `hash::Hash`
[INFO] [stdout]  --> src/attempt2.rs:1:56
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{min}, collections::HashMap, fs::{self, File}, hash::Hash, sync::Arc, thread::{self, JoinHandle}, time::Instant};
[INFO] [stdout]   |                                                        ^^^^   ^^^^^^^^^^                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt5.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `env`
[INFO] [stdout]  --> src/attempt5.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, ptr, thread::{self, JoinHandle}, time::Instant};
[INFO] [stdout]   |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `THREAD_COUNT` and `attempt1`
[INFO] [stdout]  --> src/attempt5.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, KeyedStat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |             ^^^^^^^^                                                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/attempt5.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let digit = (byte - b'0');
[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] 111 -     let digit = (byte - b'0');
[INFO] [stdout] 111 +     let digit = byte - b'0' ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt6.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, and `env`
[INFO] [stdout]  --> src/attempt6.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, ptr, thread::{self, JoinHandle}, time::Instant};
[INFO] [stdout]   |                                  ^^^                         ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, `attempt1`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt6.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |             ^^^^^^^^                                       ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/attempt6.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let digit = (byte - b'0');
[INFO] [stdout]     |                 ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 112 -     let digit = (byte - b'0');
[INFO] [stdout] 112 +     let digit = byte - b'0' ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt7.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, `current`, and `env`
[INFO] [stdout]  --> src/attempt7.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, ptr, thread::{self, current, JoinHandle}, time::Insta...
[INFO] [stdout]   |                                  ^^^                         ^^^^  ^^^^  ^^^^^^^^                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, `attempt1`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt7.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |             ^^^^^^^^                                       ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt8.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, `current`, `env`, and `path::Iter`
[INFO] [stdout]  --> src/attempt8.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...Map, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, path::Iter, ptr, sync::{atomic::AtomicUsize, Arc}, thread::{self, current, Joi...
[INFO] [stdout]   |         ^^^                         ^^^^  ^^^^  ^^^^^^^^   ^^^^^^^^^^                                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, `attempt1`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt8.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |             ^^^^^^^^                                       ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mmap`
[INFO] [stdout]  --> src/attempt8.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use memmap2::{Mmap, MmapOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicU64`
[INFO] [stdout]  --> src/attempt8.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::atomic::{AtomicU64};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/attempt8.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt9.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, `current`, `env`, and `mem`
[INFO] [stdout]  --> src/attempt9.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{arch::asm, collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, mem, ptr, thread::{self, current, JoinHand...
[INFO] [stdout]   |                                             ^^^                         ^^^^  ^^^^  ^^^^^^^^   ^^^                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, `attempt1`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt9.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |             ^^^^^^^^                                       ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mmap`
[INFO] [stdout]  --> src/attempt9.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use memmap2::{Mmap, MmapOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt9.rs:283:89
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout]     |                                                                                         ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 283 -             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout] 283 +             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/attempt9.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt9.rs:296:97
[INFO] [stdout]     |
[INFO] [stdout] 296 | ...   station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.stat...
[INFO] [stdout]     |                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 296 -             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.station);
[INFO] [stdout] 296 +             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx , &mut c.hash, &mut c.station);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt9.rs:301:63
[INFO] [stdout]     |
[INFO] [stdout] 301 |             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout]     |                                                               ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 301 -             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout] 301 +             buf_idx += find_next_newline(buf.offset(buf_idx), max_buf_idx-buf_idx , &mut c);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt10.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, `current`, `env`, and `mem`
[INFO] [stdout]  --> src/attempt10.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{arch::asm, collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, mem, ptr, thread::{self, current, JoinHand...
[INFO] [stdout]   |                                             ^^^                         ^^^^  ^^^^  ^^^^^^^^   ^^^                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, `attempt1`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt10.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |             ^^^^^^^^                                       ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mmap`
[INFO] [stdout]  --> src/attempt10.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use memmap2::{Mmap, MmapOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/attempt10.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         while true {
[INFO] [stdout]    |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt10.rs:275:89
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout]     |                                                                                         ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 275 -             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout] 275 +             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/attempt10.rs:281:5
[INFO] [stdout]     |
[INFO] [stdout] 281 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt10.rs:288:97
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...   station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.stat...
[INFO] [stdout]     |                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 288 -             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.station);
[INFO] [stdout] 288 +             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx , &mut c.hash, &mut c.station);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt10.rs:293:63
[INFO] [stdout]     |
[INFO] [stdout] 293 |             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout]     |                                                               ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 293 -             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout] 293 +             buf_idx += find_next_newline(buf.offset(buf_idx), max_buf_idx-buf_idx , &mut c);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/main.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | use log::{debug, info};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `stdarch_x86_avx512` has been stable since 1.89.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(stdarch_x86_avx512)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::fmt`
[INFO] [stdout]  --> src/utils.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::fmt;
[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: `core::hash::Hash`
[INFO] [stdout]  --> src/utils.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use core::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::BuildHasherDefault`
[INFO] [stdout]  --> src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::hash::BuildHasherDefault;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/attempt1.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, info};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `JoinHandle`, and `hash::Hash`
[INFO] [stdout]  --> src/attempt2.rs:1:56
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{min}, collections::HashMap, fs::{self, File}, hash::Hash, sync::Arc, thread::{self, JoinHandle}, time::Instant};
[INFO] [stdout]   |                                                        ^^^^   ^^^^^^^^^^                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt5.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `THREAD_COUNT`
[INFO] [stdout]  --> src/attempt5.rs:4:86
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, KeyedStat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |                                                                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/attempt5.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let digit = (byte - b'0');
[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] 111 -     let digit = (byte - b'0');
[INFO] [stdout] 111 +     let digit = byte - b'0' ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt6.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, and `Seek`
[INFO] [stdout]  --> src/attempt6.rs:2:62
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, ptr, thread::{self, JoinHandle}, time::Instant};
[INFO] [stdout]   |                                                              ^^^^  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt6.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/attempt6.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let digit = (byte - b'0');
[INFO] [stdout]     |                 ^           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 112 -     let digit = (byte - b'0');
[INFO] [stdout] 112 +     let digit = byte - b'0' ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt7.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, and `current`
[INFO] [stdout]  --> src/attempt7.rs:2:62
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, ptr, thread::{self, current, JoinHandle}, time::Insta...
[INFO] [stdout]   |                                                              ^^^^  ^^^^  ^^^^^^^^                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt7.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt8.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, `current`, and `path::Iter`
[INFO] [stdout]  --> src/attempt8.rs:2:62
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...{self, File}, io::{Read, Seek, SeekFrom}, path::Iter, ptr, sync::{atomic::AtomicUsize, Arc}, thread::{self, current, JoinHandle}, time...
[INFO] [stdout]   |                       ^^^^  ^^^^  ^^^^^^^^   ^^^^^^^^^^                                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt8.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mmap`
[INFO] [stdout]  --> src/attempt8.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use memmap2::{Mmap, MmapOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicU64`
[INFO] [stdout]  --> src/attempt8.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::atomic::{AtomicU64};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/attempt8.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt9.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, `current`, and `mem`
[INFO] [stdout]  --> src/attempt9.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{arch::asm, collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, mem, ptr, thread::{self, current, JoinHand...
[INFO] [stdout]   |                                                                         ^^^^  ^^^^  ^^^^^^^^   ^^^                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt9.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mmap`
[INFO] [stdout]  --> src/attempt9.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use memmap2::{Mmap, MmapOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt9.rs:283:89
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout]     |                                                                                         ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 283 -             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout] 283 +             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/attempt9.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 289 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt9.rs:296:97
[INFO] [stdout]     |
[INFO] [stdout] 296 | ...   station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.stat...
[INFO] [stdout]     |                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 296 -             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.station);
[INFO] [stdout] 296 +             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx , &mut c.hash, &mut c.station);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt9.rs:301:63
[INFO] [stdout]     |
[INFO] [stdout] 301 |             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout]     |                                                               ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 301 -             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout] 301 +             buf_idx += find_next_newline(buf.offset(buf_idx), max_buf_idx-buf_idx , &mut c);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> src/attempt10.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Read`, `SeekFrom`, `Seek`, `current`, and `mem`
[INFO] [stdout]  --> src/attempt10.rs:2:73
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{arch::asm, collections::BTreeMap, env, fs::{self, File}, io::{Read, Seek, SeekFrom}, mem, ptr, thread::{self, current, JoinHand...
[INFO] [stdout]   |                                                                         ^^^^  ^^^^  ^^^^^^^^   ^^^                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MAX_LINE_SIZE`, `Stat`, `THREAD_COUNT`, and `print_result_hashmap`
[INFO] [stdout]  --> src/attempt10.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{attempt1, utils::{print_result_btreemap_kstat, print_result_hashmap, KeyedStat, Stat, MAX_LINE_SIZE, THREAD_COUNT}};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^^^^^             ^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mmap`
[INFO] [stdout]  --> src/attempt10.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use memmap2::{Mmap, MmapOptions};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/attempt10.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         while true {
[INFO] [stdout]    |         ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt10.rs:275:89
[INFO] [stdout]     |
[INFO] [stdout] 275 |             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout]     |                                                                                         ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 275 -             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx));
[INFO] [stdout] 275 +             let offset = find_next_newline_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]    --> src/attempt10.rs:281:5
[INFO] [stdout]     |
[INFO] [stdout] 281 |     while true {
[INFO] [stdout]     |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt10.rs:288:97
[INFO] [stdout]     |
[INFO] [stdout] 288 | ...   station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.stat...
[INFO] [stdout]     |                                                                                           ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 288 -             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, (max_buf_idx-buf_idx), &mut c.hash, &mut c.station);
[INFO] [stdout] 288 +             station_name_len = find_next_semicolon_vectorized(buf.offset(buf_idx) as *const u8, max_buf_idx-buf_idx , &mut c.hash, &mut c.station);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/attempt10.rs:293:63
[INFO] [stdout]     |
[INFO] [stdout] 293 |             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout]     |                                                               ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 293 -             buf_idx += find_next_newline(buf.offset(buf_idx), (max_buf_idx-buf_idx), &mut c);
[INFO] [stdout] 293 +             buf_idx += find_next_newline(buf.offset(buf_idx), max_buf_idx-buf_idx , &mut c);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/main.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | use log::{debug, info};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `stdarch_x86_avx512` has been stable since 1.89.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(stdarch_x86_avx512)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/utils.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for (key, value) in table {
[INFO] [stdout]    |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/utils.rs:94:15
[INFO] [stdout]    |
[INFO] [stdout] 94 |     for (key, value) in table {
[INFO] [stdout]    |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]   --> src/attempt3.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, size: usize) -> HashMap<String, Stat>  {
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/attempt5.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt5.rs:204:70
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, mut file_size_per_thread: usize) -> LPTable {
[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: unnecessary `unsafe` block
[INFO] [stdout]    --> src/attempt6.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt6.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut ignore_first_line = thread_id != 0;
[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/attempt6.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt6.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt6.rs:206:17
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt7.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt7.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt7.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]    --> src/attempt8.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn compute(thread_id: usize, filepath: &str, offset_counter: Arc<AtomicUsize>, file_size: usize) -> LPTable {
[INFO] [stdout]     |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt8.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/attempt8.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt8.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt8.rs:268:17
[INFO] [stdout]     |
[INFO] [stdout] 268 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `station_name_len` is never read
[INFO] [stdout]    --> src/attempt9.rs:294:36
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut station_name_len = 0;
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt9.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt9.rs:336:17
[INFO] [stdout]     |
[INFO] [stdout] 336 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_slot`
[INFO] [stdout]   --> src/attempt10.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let initial_slot = slot;
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `station_name_len` is never read
[INFO] [stdout]    --> src/attempt10.rs:286:36
[INFO] [stdout]     |
[INFO] [stdout] 286 |         let mut station_name_len = 0;
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt5::LPTable` is more private than the item `attempt5::distribute_work`
[INFO] [stdout]    --> src/attempt5.rs:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt5::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt5::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt5.rs:15:1
[INFO] [stdout]     |
[INFO] [stdout]  15 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt5::LPTable` is more private than the item `attempt5::aggregate_result`
[INFO] [stdout]    --> src/attempt5.rs:228:1
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt5::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt5::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt5.rs:15:1
[INFO] [stdout]     |
[INFO] [stdout]  15 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt6::LPTable` is more private than the item `attempt6::distribute_work`
[INFO] [stdout]    --> src/attempt6.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt6::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt6::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt6.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt6::LPTable` is more private than the item `attempt6::aggregate_result`
[INFO] [stdout]    --> src/attempt6.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt6::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt6::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt6.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt7::LPTable` is more private than the item `attempt7::distribute_work`
[INFO] [stdout]    --> src/attempt7.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt7::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt7::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt7.rs:18:1
[INFO] [stdout]     |
[INFO] [stdout]  18 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt7::LPTable` is more private than the item `attempt7::aggregate_result`
[INFO] [stdout]    --> src/attempt7.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt7::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt7::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt7.rs:18:1
[INFO] [stdout]     |
[INFO] [stdout]  18 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt8::LPTable` is more private than the item `attempt8::distribute_work`
[INFO] [stdout]    --> src/attempt8.rs:248:1
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt8::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt8::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt8.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt8::LPTable` is more private than the item `attempt8::aggregate_result`
[INFO] [stdout]    --> src/attempt8.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt8::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt8::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt8.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt9::LPTable` is more private than the item `attempt9::distribute_work`
[INFO] [stdout]    --> src/attempt9.rs:317:1
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt9::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt9::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt9.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt9::LPTable` is more private than the item `attempt9::aggregate_result`
[INFO] [stdout]    --> src/attempt9.rs:329:1
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt9::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt9::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt9.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt10::LPTable` is more private than the item `attempt10::distribute_work`
[INFO] [stdout]    --> src/attempt10.rs:310:1
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt10::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt10::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt10.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt10::LPTable` is more private than the item `attempt10::aggregate_result`
[INFO] [stdout]    --> src/attempt10.rs:322:1
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt10::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt10::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt10.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMD_WIDTH` is never used
[INFO] [stdout]   --> src/utils.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const SIMD_WIDTH: usize = 32;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LINE_COUNT` is never used
[INFO] [stdout]   --> src/utils.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const LINE_COUNT: usize = 1_000_000_000;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_LINE_SIZE` is never used
[INFO] [stdout]   --> src/utils.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const MAX_LINE_SIZE: usize = 107; //<100_BYTE_NAME><1_BYTE_SEMICOLON><6_BYTE_TEMPRATURE>, temprature is atmost 6 bytes since -99.9 >=...
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stat` is never constructed
[INFO] [stdout]   --> src/utils.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Stat {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_result_hashmap` is never used
[INFO] [stdout]   --> src/utils.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn print_result_hashmap<S>(table: &HashMap<String, Stat, S>) where S:  std::hash::BuildHasher  {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_result_btreemap_stat` is never used
[INFO] [stdout]   --> src/utils.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn print_result_btreemap_stat(table: &BTreeMap<String, Stat>)  {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]  --> src/attempt1.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn read_file(path: &str) -> String {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_to_hashmap` is never used
[INFO] [stdout]   --> src/attempt1.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn compute_to_hashmap(contents: String) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_to_btree_stat` is never used
[INFO] [stdout]   --> src/attempt1.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn compute_to_btree_stat(contents: String) -> BTreeMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_to_btree_kstat` is never used
[INFO] [stdout]   --> src/attempt1.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn compute_to_btree_kstat(contents: String) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_hashmap` is never used
[INFO] [stdout]    --> src/attempt1.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn naive_hashmap(path: &str) -> HashMap<String, Stat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_btree_stat` is never used
[INFO] [stdout]    --> src/attempt1.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn naive_btree_stat(path: &str) -> BTreeMap<String, Stat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_btree_kstat` is never used
[INFO] [stdout]    --> src/attempt1.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn naive_btree_kstat(path: &str) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_file_part` is never used
[INFO] [stdout]   --> src/attempt2.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn process_file_part<'a>(thread_id: usize, contents: Arc<String>) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]   --> src/attempt2.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn read_file(filepath: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]   --> src/attempt2.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn compute(thread_count: usize, contents: Arc<String>) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/attempt2.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]   --> src/attempt3.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compute(contents: String) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]   --> src/attempt3.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn read_file(filepath: &str, start_offset: usize, size: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_run` is never used
[INFO] [stdout]   --> src/attempt3.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, size: usize) -> HashMap<String, Stat>  {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/attempt3.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LPTable` is never constructed
[INFO] [stdout]   --> src/attempt5.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct LPTable {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_collision_count`, and `insert_or_update` are never used
[INFO] [stdout]   --> src/attempt5.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl LPTable {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 24 |     fn new(num_slots: usize, min_slot_size: usize) -> LPTable {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn insert_or_update(&mut self, station: &[u8; 100], len: usize, hash: usize, temp: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_temp_vars` is never used
[INFO] [stdout]   --> src/attempt5.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn reset_temp_vars(temp_int_part: &mut u8, temp_fraction_part: &mut u8, temp_multiplier: &mut f32, parsing_int_part: &mut bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_station_vars` is never used
[INFO] [stdout]   --> src/attempt5.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn reset_station_vars(station: &mut [u8; 100], station_idx: &mut usize, hash: &mut usize, parsing_name: &mut bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_station` is never used
[INFO] [stdout]    --> src/attempt5.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn update_station(station: &mut [u8; 100], station_idx: &mut usize, hash: &mut usize, byte: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_temp_vars` is never used
[INFO] [stdout]    --> src/attempt5.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn update_temp_vars(byte: u8, temp_int_part: &mut u8, temp_fraction_part: &mut u8, parsing_int_part: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]    --> src/attempt5.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn compute(contents: &str, thread_id: usize, min_bytes_to_process: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]    --> src/attempt5.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn read_file(filepath: &str, start_offset: usize, size: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_run` is never used
[INFO] [stdout]    --> src/attempt5.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, mut file_size_per_thread: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distribute_work` is never used
[INFO] [stdout]    --> src/attempt5.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggregate_result` is never used
[INFO] [stdout]    --> src/attempt5.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/attempt5.rs:257:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub fn run(path: &'static str) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LPTable` is never constructed
[INFO] [stdout]   --> src/attempt6.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct LPTable {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_collision_count`, `len`, and `insert_or_update` are never used
[INFO] [stdout]   --> src/attempt6.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl LPTable {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 25 |     fn new(num_slots: usize, min_slot_size: usize) -> LPTable {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn insert_or_update(&mut self, station: &[u8; 100], len: usize, hash: usize, temp: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_temp_vars` is never used
[INFO] [stdout]   --> src/attempt6.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn reset_temp_vars(temp_int_part: &mut u8, temp_fraction_part: &mut u8, temp_multiplier: &mut f32, parsing_int_part: &mut bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_station_vars` is never used
[INFO] [stdout]   --> src/attempt6.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn reset_station_vars(station: &mut [u8; 100], station_idx: &mut usize, hash: &mut usize, parsing_name: &mut bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_station` is never used
[INFO] [stdout]    --> src/attempt6.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn update_station(station: &mut [u8; 100], station_idx: &mut usize, hash: &mut usize, byte: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_temp_vars` is never used
[INFO] [stdout]    --> src/attempt6.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn update_temp_vars(byte: u8, temp_int_part: &mut u8, temp_fraction_part: &mut u8, parsing_int_part: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]    --> src/attempt6.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn compute(contents: &mut Mmap, thread_id: usize, min_bytes_to_process: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_run` is never used
[INFO] [stdout]    --> src/attempt6.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, file_size_per_thread: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distribute_work` is never used
[INFO] [stdout]    --> src/attempt6.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggregate_result` is never used
[INFO] [stdout]    --> src/attempt6.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/attempt6.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn run(path: &'static str, thread_count: usize) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LPTable` is never constructed
[INFO] [stdout]   --> src/attempt7.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct LPTable {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_collision_count`, `len`, and `insert_or_update` are never used
[INFO] [stdout]   --> src/attempt7.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl LPTable {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 29 |     fn new(num_slots: usize, min_slot_size: usize) -> LPTable {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn insert_or_update(&mut self, station: &[u8; 100], len: usize, hash: usize, temp: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cursor` is never constructed
[INFO] [stdout]   --> src/attempt7.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | struct Cursor {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/attempt7.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl Cursor {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 110 |     fn new() -> Cursor {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temprature` is never used
[INFO] [stdout]    --> src/attempt7.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn temprature(c: &mut Cursor) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset` is never used
[INFO] [stdout]    --> src/attempt7.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn reset(c: &mut Cursor) {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_temprature` is never used
[INFO] [stdout]    --> src/attempt7.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn update_temprature(c: &mut Cursor, byte: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_station` is never used
[INFO] [stdout]    --> src/attempt7.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn update_station(c: &mut Cursor, byte: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]    --> src/attempt7.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn compute(contents: &mut Mmap, thread_id: usize, min_bytes_to_process: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_run` is never used
[INFO] [stdout]    --> src/attempt7.rs:200:4
[INFO] [stdout]     |
[INFO] [stdout] 200 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, file_size_per_thread: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distribute_work` is never used
[INFO] [stdout]    --> src/attempt7.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggregate_result` is never used
[INFO] [stdout]    --> src/attempt7.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/attempt7.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub fn run(path: &'static str, thread_count: usize) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LPTable` is never constructed
[INFO] [stdout]   --> src/attempt8.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct LPTable {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_collision_count`, `len`, and `insert_or_update` are never used
[INFO] [stdout]   --> src/attempt8.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl LPTable {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 20 |     fn new(num_slots: usize, min_slot_size: usize) -> LPTable {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn insert_or_update(&mut self, station: &[u8; 100], len: usize, hash: usize, temp: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cursor` is never constructed
[INFO] [stdout]   --> src/attempt8.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | struct Cursor {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/attempt8.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl Cursor {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 97 |     fn new() -> Cursor {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temprature` is never used
[INFO] [stdout]    --> src/attempt8.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn temprature(c: &mut Cursor) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset` is never used
[INFO] [stdout]    --> src/attempt8.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn reset(c: &mut Cursor) {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_temprature` is never used
[INFO] [stdout]    --> src/attempt8.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn update_temprature(c: &mut Cursor, byte: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_station` is never used
[INFO] [stdout]    --> src/attempt8.rs:136:4
[INFO] [stdout]     |
[INFO] [stdout] 136 | fn update_station(c: &mut Cursor, byte: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]    --> src/attempt8.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn compute(thread_id: usize, filepath: &str, offset_counter: Arc<AtomicUsize>, file_size: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_run` is never used
[INFO] [stdout]    --> src/attempt8.rs:243:4
[INFO] [stdout]     |
[INFO] [stdout] 243 | fn thread_run(thread_id: usize, filepath: &str, offset_counter: Arc<AtomicUsize>, file_size: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distribute_work` is never used
[INFO] [stdout]    --> src/attempt8.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggregate_result` is never used
[INFO] [stdout]    --> src/attempt8.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/attempt8.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn run(path: &'static str, thread_count: usize) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LPTable` is never constructed
[INFO] [stdout]   --> src/attempt9.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct LPTable {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_collision_count`, `len`, and `insert_or_update` are never used
[INFO] [stdout]   --> src/attempt9.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl LPTable {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 19 |     fn new(num_slots: usize, min_slot_size: usize) -> LPTable {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn insert_or_update(&mut self, station: &[u8; 100], len: usize, hash: usize, temp: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cursor` is never constructed
[INFO] [stdout]   --> src/attempt9.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct Cursor {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/attempt9.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl Cursor {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 96 |     fn new() -> Cursor {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temprature` is never used
[INFO] [stdout]    --> src/attempt9.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn temprature(c: &mut Cursor) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset` is never used
[INFO] [stdout]    --> src/attempt9.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn reset(c: &mut Cursor) {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_temprature` is never used
[INFO] [stdout]    --> src/attempt9.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn update_temprature(c: &mut Cursor, byte: u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_unaligned_u64` is never used
[INFO] [stdout]    --> src/attempt9.rs:142:11
[INFO] [stdout]     |
[INFO] [stdout] 142 | unsafe fn read_unaligned_u64(ptr: *const usize) -> usize {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_newline` is never used
[INFO] [stdout]    --> src/attempt9.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn find_newline(data: usize) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_newline_vectorized` is never used
[INFO] [stdout]    --> src/attempt9.rs:165:4
[INFO] [stdout]     |
[INFO] [stdout] 165 | fn find_next_newline_vectorized(ptr: *const u8,  max_offset: isize) -> isize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_newline` is never used
[INFO] [stdout]    --> src/attempt9.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn find_next_newline(ptr: *const u8, max_offset: isize, c: &mut Cursor) -> isize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_semicolon` is never used
[INFO] [stdout]    --> src/attempt9.rs:216:4
[INFO] [stdout]     |
[INFO] [stdout] 216 | fn find_semicolon(data: usize) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_semicolon_vectorized` is never used
[INFO] [stdout]    --> src/attempt9.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn find_next_semicolon_vectorized(ptr: *const u8, max_offset: isize, hash: &mut usize, name: &mut [u8; 100]) -> isize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]    --> src/attempt9.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn compute(thread_id: usize, filepath: &str, start_offset: usize, file_size_per_thread: isize, file_size: usize) -> LPTable {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distribute_work` is never used
[INFO] [stdout]    --> src/attempt9.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aggregate_result` is never used
[INFO] [stdout]    --> src/attempt9.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/attempt9.rs:361:8
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub fn run(path: &'static str, thread_count: usize) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/utils.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     for (key, value) in table {
[INFO] [stdout]    |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/utils.rs:94:15
[INFO] [stdout]    |
[INFO] [stdout] 94 |     for (key, value) in table {
[INFO] [stdout]    |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]   --> src/attempt3.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, size: usize) -> HashMap<String, Stat>  {
[INFO] [stdout]    |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/attempt5.rs:103:5
[INFO] [stdout]     |
[INFO] [stdout] 103 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt5.rs:204:70
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, mut file_size_per_thread: usize) -> LPTable {
[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: unnecessary `unsafe` block
[INFO] [stdout]    --> src/attempt6.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt6.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let mut ignore_first_line = thread_id != 0;
[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/attempt6.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt6.rs:200:9
[INFO] [stdout]     |
[INFO] [stdout] 200 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt6.rs:206:17
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt7.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt7.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt7.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `thread_id`
[INFO] [stdout]    --> src/attempt8.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn compute(thread_id: usize, filepath: &str, offset_counter: Arc<AtomicUsize>, file_size: usize) -> LPTable {
[INFO] [stdout]     |            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_thread_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/attempt8.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/attempt8.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |     let mut file = File::open(filepath).unwrap();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt8.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt8.rs:268:17
[INFO] [stdout]     |
[INFO] [stdout] 268 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `station_name_len` is never read
[INFO] [stdout]    --> src/attempt9.rs:294:36
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut station_name_len = 0;
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]    --> src/attempt9.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |     let mut count = 0;
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/attempt9.rs:336:17
[INFO] [stdout]     |
[INFO] [stdout] 336 |                 count += 1;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_slot`
[INFO] [stdout]   --> src/attempt10.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let initial_slot = slot;
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `station_name_len` is never read
[INFO] [stdout]    --> src/attempt10.rs:286:36
[INFO] [stdout]     |
[INFO] [stdout] 286 |         let mut station_name_len = 0;
[INFO] [stdout]     |                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt5::LPTable` is more private than the item `attempt5::distribute_work`
[INFO] [stdout]    --> src/attempt5.rs:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt5::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt5::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt5.rs:15:1
[INFO] [stdout]     |
[INFO] [stdout]  15 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt5::LPTable` is more private than the item `attempt5::aggregate_result`
[INFO] [stdout]    --> src/attempt5.rs:228:1
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt5::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt5::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt5.rs:15:1
[INFO] [stdout]     |
[INFO] [stdout]  15 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt6::LPTable` is more private than the item `attempt6::distribute_work`
[INFO] [stdout]    --> src/attempt6.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt6::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt6::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt6.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt6::LPTable` is more private than the item `attempt6::aggregate_result`
[INFO] [stdout]    --> src/attempt6.rs:199:1
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt6::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt6::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt6.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt7::LPTable` is more private than the item `attempt7::distribute_work`
[INFO] [stdout]    --> src/attempt7.rs:206:1
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt7::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt7::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt7.rs:18:1
[INFO] [stdout]     |
[INFO] [stdout]  18 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt7::LPTable` is more private than the item `attempt7::aggregate_result`
[INFO] [stdout]    --> src/attempt7.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt7::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt7::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt7.rs:18:1
[INFO] [stdout]     |
[INFO] [stdout]  18 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt8::LPTable` is more private than the item `attempt8::distribute_work`
[INFO] [stdout]    --> src/attempt8.rs:248:1
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt8::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt8::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt8.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt8::LPTable` is more private than the item `attempt8::aggregate_result`
[INFO] [stdout]    --> src/attempt8.rs:261:1
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt8::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt8::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt8.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt9::LPTable` is more private than the item `attempt9::distribute_work`
[INFO] [stdout]    --> src/attempt9.rs:317:1
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt9::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt9::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt9.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt9::LPTable` is more private than the item `attempt9::aggregate_result`
[INFO] [stdout]    --> src/attempt9.rs:329:1
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt9::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt9::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt9.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt10::LPTable` is more private than the item `attempt10::distribute_work`
[INFO] [stdout]    --> src/attempt10.rs:310:1
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub fn distribute_work(path: &'static str, thread_count: usize) -> Vec<JoinHandle<LPTable>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt10::distribute_work` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt10::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt10.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `attempt10::LPTable` is more private than the item `attempt10::aggregate_result`
[INFO] [stdout]    --> src/attempt10.rs:322:1
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn aggregate_result(handles: Vec<JoinHandle<LPTable>>) -> BTreeMap<String, KeyedStat> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `attempt10::aggregate_result` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `attempt10::LPTable` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/attempt10.rs:10:1
[INFO] [stdout]     |
[INFO] [stdout]  10 | struct LPTable {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMD_WIDTH` is never used
[INFO] [stdout]   --> src/utils.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const SIMD_WIDTH: usize = 32;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LINE_COUNT` is never used
[INFO] [stdout]   --> src/utils.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const LINE_COUNT: usize = 1_000_000_000;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stat` is never constructed
[INFO] [stdout]   --> src/utils.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct Stat {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_result_hashmap` is never used
[INFO] [stdout]   --> src/utils.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn print_result_hashmap<S>(table: &HashMap<String, Stat, S>) where S:  std::hash::BuildHasher  {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_result_btreemap_stat` is never used
[INFO] [stdout]   --> src/utils.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn print_result_btreemap_stat(table: &BTreeMap<String, Stat>)  {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_to_hashmap` is never used
[INFO] [stdout]   --> src/attempt1.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn compute_to_hashmap(contents: String) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_to_btree_stat` is never used
[INFO] [stdout]   --> src/attempt1.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn compute_to_btree_stat(contents: String) -> BTreeMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_hashmap` is never used
[INFO] [stdout]    --> src/attempt1.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn naive_hashmap(path: &str) -> HashMap<String, Stat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_btree_stat` is never used
[INFO] [stdout]    --> src/attempt1.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn naive_btree_stat(path: &str) -> BTreeMap<String, Stat> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_file_part` is never used
[INFO] [stdout]   --> src/attempt2.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn process_file_part<'a>(thread_id: usize, contents: Arc<String>) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]   --> src/attempt2.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn read_file(filepath: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]   --> src/attempt2.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn compute(thread_count: usize, contents: Arc<String>) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/attempt2.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute` is never used
[INFO] [stdout]   --> src/attempt3.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compute(contents: String) -> HashMap<String, Stat> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]   --> src/attempt3.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn read_file(filepath: &str, start_offset: usize, size: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thread_run` is never used
[INFO] [stdout]   --> src/attempt3.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn thread_run(thread_id: usize, filepath: &str, start_offset: usize, size: usize) -> HashMap<String, Stat>  {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/attempt3.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> src/attempt6.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl LPTable {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_collision_count` and `len` are never used
[INFO] [stdout]   --> src/attempt7.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl LPTable {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_collision_count` and `len` are never used
[INFO] [stdout]   --> src/attempt8.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl LPTable {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_collision_count` and `len` are never used
[INFO] [stdout]   --> src/attempt9.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl LPTable {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn get_collision_count(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn len(&self) -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.57s
[INFO] running `Command { std: "docker" "inspect" "2a1e59930f24c8d31d37d13b1dc71921626aa51b922e367e1d14937c29db6cc2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2a1e59930f24c8d31d37d13b1dc71921626aa51b922e367e1d14937c29db6cc2", kill_on_drop: false }`
[INFO] [stdout] 2a1e59930f24c8d31d37d13b1dc71921626aa51b922e367e1d14937c29db6cc2
