[INFO] cloning repository https://github.com/jordanstephens/cryptopals
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jordanstephens/cryptopals" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordanstephens%2Fcryptopals", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordanstephens%2Fcryptopals'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 235dbdedf6fdf1df3d7d0250ac38d6cb636d0720
[INFO] testing jordanstephens/cryptopals against 1.97.0-beta.6 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordanstephens%2Fcryptopals" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jordanstephens/cryptopals
[INFO] finished tweaking git repo https://github.com/jordanstephens/cryptopals
[INFO] tweaked toml for git repo https://github.com/jordanstephens/cryptopals written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jordanstephens/cryptopals on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jordanstephens/cryptopals 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num_cpus v1.11.1
[INFO] [stderr]   Downloaded rayon-core v1.7.0
[INFO] [stderr]   Downloaded hermit-abi v0.1.6
[INFO] [stderr]   Downloaded memoffset v0.5.3
[INFO] [stderr]   Downloaded autocfg v0.1.7
[INFO] [stderr]   Downloaded scopeguard v1.0.0
[INFO] [stderr]   Downloaded either v1.5.3
[INFO] [stderr]   Downloaded crossbeam-queue v0.2.1
[INFO] [stderr]   Downloaded crossbeam-deque v0.7.2
[INFO] [stderr]   Downloaded num-traits v0.2.10
[INFO] [stderr]   Downloaded crossbeam-utils v0.7.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.8.0
[INFO] [stderr]   Downloaded rayon v1.3.0
[INFO] [stderr]   Downloaded libc v0.2.66
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6
[INFO] running `Command { std: "docker" "start" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.7
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling libc v0.2.66
[INFO] [stderr]    Compiling scopeguard v1.0.0
[INFO] [stderr]    Compiling rayon-core v1.7.0
[INFO] [stderr]    Compiling either v1.5.3
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling crossbeam-utils v0.7.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.0
[INFO] [stderr]    Compiling num-traits v0.2.10
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling num_cpus v1.11.1
[INFO] [stderr]    Compiling memoffset v0.5.3
[INFO] [stderr]    Compiling crossbeam-queue v0.2.1
[INFO] [stderr]    Compiling crossbeam-deque v0.7.2
[INFO] [stderr]    Compiling rayon v1.3.0
[INFO] [stderr]    Compiling ordered-float v1.0.2
[INFO] [stderr]    Compiling cryptopals v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Buffer` is never constructed
[INFO] [stdout]  --> src/buffer.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Buffer {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_hex`, `to_base64`, `to_hex`, and `xor` are never used
[INFO] [stdout]   --> src/buffer.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Buffer {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 10 |   pub fn new(bytes: Vec<u8>) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |   pub fn from_hex(hex_str: &str) -> Result<Self, Error> {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |   pub fn to_base64(&self) -> String {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |   pub fn to_hex(&self) -> String {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |   pub fn xor(&self, other: &Buffer) -> Result<Buffer, Error> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_hex` is never used
[INFO] [stdout]  --> src/decoder.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn from_hex(input: &str) -> Result<Vec<u8>, Error> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_val` is never used
[INFO] [stdout]   --> src/decoder.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn hex_val(c: u8) -> Result<u8, Error> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Key` is never used
[INFO] [stdout]  --> src/distribution.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Key {
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENGLISH` is never used
[INFO] [stdout]   --> src/distribution.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const ENGLISH: [(Key, f32, &str); 29] = [
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Distribution` is never constructed
[INFO] [stdout]   --> src/distribution.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Distribution {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, `empty`, `english`, and `scale` are never used
[INFO] [stdout]    --> src/distribution.rs:78:10
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl Distribution {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  78 |   pub fn new() -> Self {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |   pub fn from(input: &[u8]) -> Self {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |   pub fn empty() -> Self {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |   pub fn english() -> Self {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |   pub fn scale(&mut self, n: f32) -> &Self {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score` is never used
[INFO] [stdout]    --> src/distribution.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn score(sample: &[u8]) -> f32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]    --> src/distribution.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn distance(observed: &Distribution, expected: &Distribution) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chi_squared_i` is never used
[INFO] [stdout]    --> src/distribution.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn chi_squared_i(observed: f32, expected: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chi_squared` is never used
[INFO] [stdout]    --> src/distribution.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn chi_squared(observed: &Vec<f32>, expected: &Vec<f32>) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_hex` is never used
[INFO] [stdout]  --> src/encoder.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn to_hex(bytes: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_base64` is never used
[INFO] [stdout]   --> src/encoder.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn to_base64(bytes: &[u8]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_chunk` is never used
[INFO] [stdout]   --> src/encoder.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn convert_chunk(chunk: &[u8], charset: &Charset) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Charset` is never constructed
[INFO] [stdout]   --> src/encoder.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Charset {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `base64`, and `hex` are never used
[INFO] [stdout]   --> src/encoder.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl Charset {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 67 |   fn new(chars: &str) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |   fn base64() -> Self {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |   fn hex() -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]  --> src/error.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Error {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt` is never used
[INFO] [stdout]  --> src/xor_cipher.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn encrypt(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt` is never used
[INFO] [stdout]  --> src/xor_cipher.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn decrypt(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `xor` is never used
[INFO] [stdout]   --> src/xor_cipher.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn xor(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyCandidate` is never constructed
[INFO] [stdout]   --> src/xor_cipher.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct KeyCandidate {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_candidate_keys` is never used
[INFO] [stdout]   --> src/xor_cipher.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn find_candidate_keys(ciphertext: &[u8]) -> Vec<KeyCandidate> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_key` is never used
[INFO] [stdout]   --> src/xor_cipher.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn find_best_key(bytes: &[u8]) -> KeyCandidate {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::iter::Map` that must be used
[INFO] [stdout]    --> src/distribution.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let _ = self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.10s
[INFO] running `Command { std: "docker" "inspect" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: struct `Buffer` is never constructed
[INFO] [stdout]  --> src/buffer.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Buffer {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_hex`, `to_base64`, `to_hex`, and `xor` are never used
[INFO] [stdout]   --> src/buffer.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Buffer {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 10 |   pub fn new(bytes: Vec<u8>) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |   pub fn from_hex(hex_str: &str) -> Result<Self, Error> {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |   pub fn to_base64(&self) -> String {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |   pub fn to_hex(&self) -> String {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |   pub fn xor(&self, other: &Buffer) -> Result<Buffer, Error> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_hex` is never used
[INFO] [stdout]  --> src/decoder.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn from_hex(input: &str) -> Result<Vec<u8>, Error> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_val` is never used
[INFO] [stdout]   --> src/decoder.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn hex_val(c: u8) -> Result<u8, Error> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Key` is never used
[INFO] [stdout]  --> src/distribution.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Key {
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENGLISH` is never used
[INFO] [stdout]   --> src/distribution.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const ENGLISH: [(Key, f32, &str); 29] = [
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Distribution` is never constructed
[INFO] [stdout]   --> src/distribution.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Distribution {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, `empty`, `english`, and `scale` are never used
[INFO] [stdout]    --> src/distribution.rs:78:10
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl Distribution {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  78 |   pub fn new() -> Self {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |   pub fn from(input: &[u8]) -> Self {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |   pub fn empty() -> Self {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |   pub fn english() -> Self {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |   pub fn scale(&mut self, n: f32) -> &Self {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score` is never used
[INFO] [stdout]    --> src/distribution.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn score(sample: &[u8]) -> f32 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]    --> src/distribution.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn distance(observed: &Distribution, expected: &Distribution) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chi_squared_i` is never used
[INFO] [stdout]    --> src/distribution.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn chi_squared_i(observed: f32, expected: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chi_squared` is never used
[INFO] [stdout]    --> src/distribution.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn chi_squared(observed: &Vec<f32>, expected: &Vec<f32>) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cryptopals v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `to_hex` is never used
[INFO] [stdout]  --> src/encoder.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn to_hex(bytes: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_base64` is never used
[INFO] [stdout]   --> src/encoder.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn to_base64(bytes: &[u8]) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_chunk` is never used
[INFO] [stdout]   --> src/encoder.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn convert_chunk(chunk: &[u8], charset: &Charset) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Charset` is never constructed
[INFO] [stdout]   --> src/encoder.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct Charset {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `base64`, and `hex` are never used
[INFO] [stdout]   --> src/encoder.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl Charset {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] 67 |   fn new(chars: &str) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |   fn base64() -> Self {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |   fn hex() -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]  --> src/error.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Error {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt` is never used
[INFO] [stdout]  --> src/xor_cipher.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn encrypt(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt` is never used
[INFO] [stdout]  --> src/xor_cipher.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn decrypt(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `xor` is never used
[INFO] [stdout]   --> src/xor_cipher.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn xor(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyCandidate` is never constructed
[INFO] [stdout]   --> src/xor_cipher.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct KeyCandidate {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_candidate_keys` is never used
[INFO] [stdout]   --> src/xor_cipher.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn find_candidate_keys(ciphertext: &[u8]) -> Vec<KeyCandidate> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_key` is never used
[INFO] [stdout]   --> src/xor_cipher.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn find_best_key(bytes: &[u8]) -> KeyCandidate {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::iter::Map` that must be used
[INFO] [stdout]    --> src/distribution.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let _ = self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::iter::Map` that must be used
[INFO] [stdout]    --> src/distribution.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let _ = self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.97s
[INFO] running `Command { std: "docker" "inspect" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: struct `Buffer` is never constructed
[INFO] [stderr]  --> src/buffer.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Buffer {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `from_hex`, `to_base64`, `to_hex`, and `xor` are never used
[INFO] [stderr]   --> src/buffer.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl Buffer {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 10 |   pub fn new(bytes: Vec<u8>) -> Self {
[INFO] [stderr]    |          ^^^
[INFO] [stderr] ...
[INFO] [stderr] 14 |   pub fn from_hex(hex_str: &str) -> Result<Self, Error> {
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |   pub fn to_base64(&self) -> String {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |   pub fn to_hex(&self) -> String {
[INFO] [stderr]    |          ^^^^^^
[INFO] [stderr] ...
[INFO] [stdout] 
[INFO] [stderr] 27 |   pub fn xor(&self, other: &Buffer) -> Result<Buffer, Error> {
[INFO] [stdout] running 15 tests
[INFO] [stderr]    |          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `from_hex` is never used
[INFO] [stderr]  --> src/decoder.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn from_hex(input: &str) -> Result<Vec<u8>, Error> {
[INFO] [stderr]   |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hex_val` is never used
[INFO] [stderr]   --> src/decoder.rs:17:4
[INFO] [stderr]    |
[INFO] [stderr] 17 | fn hex_val(c: u8) -> Result<u8, Error> {
[INFO] [stderr]    |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Key` is never used
[INFO] [stderr]  --> src/distribution.rs:4:10
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub enum Key {
[INFO] [stderr]   |          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ENGLISH` is never used
[INFO] [stderr]   --> src/distribution.rs:36:7
[INFO] [stderr]    |
[INFO] [stderr] 36 | const ENGLISH: [(Key, f32, &str); 29] = [
[INFO] [stderr]    |       ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Distribution` is never constructed
[INFO] [stderr]   --> src/distribution.rs:72:12
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub struct Distribution {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `from`, `empty`, `english`, and `scale` are never used
[INFO] [stderr]    --> src/distribution.rs:78:10
[INFO] [stderr]     |
[INFO] [stderr]  77 | impl Distribution {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr]  78 |   pub fn new() -> Self {
[INFO] [stderr]     |          ^^^
[INFO] [stderr] ...
[INFO] [stderr]  84 |   pub fn from(input: &[u8]) -> Self {
[INFO] [stderr]     |          ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  99 |   pub fn empty() -> Self {
[INFO] [stderr]     |          ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |   pub fn english() -> Self {
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |   pub fn scale(&mut self, n: f32) -> &Self {
[INFO] [stderr]     |          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `score` is never used
[INFO] [stderr]    --> src/distribution.rs:127:8
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub fn score(sample: &[u8]) -> f32 {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `distance` is never used
[INFO] [stderr]    --> src/distribution.rs:134:8
[INFO] [stderr]     |
[INFO] [stderr] 134 | pub fn distance(observed: &Distribution, expected: &Distribution) -> f32 {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `chi_squared_i` is never used
[INFO] [stderr]    --> src/distribution.rs:142:4
[INFO] [stderr]     |
[INFO] [stderr] 142 | fn chi_squared_i(observed: f32, expected: f32) -> f32 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `chi_squared` is never used
[INFO] [stderr]    --> src/distribution.rs:152:4
[INFO] [stderr]     |
[INFO] [stderr] 152 | fn chi_squared(observed: &Vec<f32>, expected: &Vec<f32>) -> f32 {
[INFO] [stderr]     |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_hex` is never used
[INFO] [stderr]  --> src/encoder.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn to_hex(bytes: &[u8]) -> String {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_base64` is never used
[INFO] [stderr]   --> src/encoder.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn to_base64(bytes: &[u8]) -> String {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `convert_chunk` is never used
[INFO] [stderr]   --> src/encoder.rs:46:4
[INFO] [stderr]    |
[INFO] [stderr] 46 | fn convert_chunk(chunk: &[u8], charset: &Charset) -> Vec<u8> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Charset` is never constructed
[INFO] [stderr]   --> src/encoder.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | struct Charset {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new`, `base64`, and `hex` are never used
[INFO] [stderr]   --> src/encoder.rs:67:6
[INFO] [stderr]    |
[INFO] [stderr] 66 | impl Charset {
[INFO] [stderr]    | ------------ associated functions in this implementation
[INFO] [stderr] 67 |   fn new(chars: &str) -> Self {
[INFO] [stderr]    |      ^^^
[INFO] [stderr] ...
[INFO] [stderr] 73 |   fn base64() -> Self {
[INFO] [stderr]    |      ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77 |   fn hex() -> Self {
[INFO] [stderr]    |      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Error` is never used
[INFO] [stderr]  --> src/error.rs:3:10
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub enum Error {
[INFO] [stderr]   |          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `encrypt` is never used
[INFO] [stderr]  --> src/xor_cipher.rs:5:8
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn encrypt(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stderr]   |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `decrypt` is never used
[INFO] [stderr]  --> src/xor_cipher.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn decrypt(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stderr]   |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `xor` is never used
[INFO] [stderr]   --> src/xor_cipher.rs:13:4
[INFO] [stderr]    |
[INFO] [stderr] 13 | fn xor(bytes: &[u8], key: &[u8]) -> Vec<u8> {
[INFO] [stderr]    |    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `KeyCandidate` is never constructed
[INFO] [stderr]   --> src/xor_cipher.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct KeyCandidate {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_candidate_keys` is never used
[INFO] [stderr]   --> src/xor_cipher.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn find_candidate_keys(ciphertext: &[u8]) -> Vec<KeyCandidate> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_best_key` is never used
[INFO] [stderr]   --> src/xor_cipher.rs:43:8
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub fn find_best_key(bytes: &[u8]) -> KeyCandidate {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::iter::Map` that must be used
[INFO] [stderr]    --> src/distribution.rs:122:5
[INFO] [stderr]     |
[INFO] [stderr] 122 |     self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: iterators are lazy and do nothing unless consumed
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 122 |     let _ = self.table.iter_mut().map(|(_, value)| *value * n);
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `cryptopals` (lib) generated 25 warnings
[INFO] [stderr] warning: `cryptopals` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cryptopals-d0ce270538d0a34f)
[INFO] [stdout] test buffer::test_empty ... ok
[INFO] [stdout] test buffer::test_padding1 ... ok
[INFO] [stdout] test buffer::test_fixed_xor ... ok
[INFO] [stdout] test distribution::test_chi_squared_eq ... ok
[INFO] [stdout] test buffer::test_padding2 ... ok
[INFO] [stdout] test distribution::test_chi_squared_ne ... ok
[INFO] [stdout] test distribution::test_chi_squared_zero_expected ... ok
[INFO] [stdout] test distribution::test_score ... ok
[INFO] [stdout] test buffer::test_hex_to_b64 ... ok
[INFO] [stdout] test xor_cipher::tests::test_decrypt ... ok
[INFO] [stdout] test distribution::test_chi_squared_inverted ... ok
[INFO] [stdout] test buffer::test_simple ... ok
[INFO] [stdout] test xor_cipher::tests::test_encrypt_repeating_key_xor ... ok
[INFO] [stdout] test xor_cipher::tests::test_find_best_key ... ok
[INFO] [stderr]    Doc-tests cryptopals
[INFO] [stdout] test xor_cipher::tests::test_find_key_from_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 24.42s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6", kill_on_drop: false }`
[INFO] [stdout] 6cfc9154e8217db85cf8c602ec6e4e6226090b23a5d4f310432ad742710669c6
