[INFO] cloning repository https://github.com/Apoxtrophe/KRYPTON
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Apoxtrophe/KRYPTON" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FApoxtrophe%2FKRYPTON", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FApoxtrophe%2FKRYPTON'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 97595b1c74e1b4f3411cee30d821a6f031e4bdd2
[INFO] checking Apoxtrophe/KRYPTON against try#53f0b05ecbcf011a1f77f1c627304e87ebd05801 for pr-154492
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FApoxtrophe%2FKRYPTON" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Apoxtrophe/KRYPTON
[INFO] finished tweaking git repo https://github.com/Apoxtrophe/KRYPTON
[INFO] tweaked toml for git repo https://github.com/Apoxtrophe/KRYPTON written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Apoxtrophe/KRYPTON on toolchain 53f0b05ecbcf011a1f77f1c627304e87ebd05801
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Apoxtrophe/KRYPTON 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" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7efb8ffe8c7240cfecf27f83ae6cc6a16a6ee0fe993be98d4faaaadb366cf3f8
[INFO] running `Command { std: "docker" "start" "-a" "7efb8ffe8c7240cfecf27f83ae6cc6a16a6ee0fe993be98d4faaaadb366cf3f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7efb8ffe8c7240cfecf27f83ae6cc6a16a6ee0fe993be98d4faaaadb366cf3f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7efb8ffe8c7240cfecf27f83ae6cc6a16a6ee0fe993be98d4faaaadb366cf3f8", kill_on_drop: false }`
[INFO] [stdout] 7efb8ffe8c7240cfecf27f83ae6cc6a16a6ee0fe993be98d4faaaadb366cf3f8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f0cad8f7673b02c443c3fd9fd2725a8020e2f69418d8c0c77c01c2659123431e
[INFO] running `Command { std: "docker" "start" "-a" "f0cad8f7673b02c443c3fd9fd2725a8020e2f69418d8c0c77c01c2659123431e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.84
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling serde v1.0.203
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking libloading v0.8.3
[INFO] [stderr]    Compiling wayland-sys v0.31.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling cc v1.0.98
[INFO] [stderr]     Checking parking v2.2.0
[INFO] [stderr]    Compiling indexmap v2.2.6
[INFO] [stderr]    Compiling toml_datetime v0.6.6
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking futures-lite v2.3.0
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]    Compiling rustix v0.37.27
[INFO] [stderr]     Checking piper v0.2.2
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling xml-rs v0.8.20
[INFO] [stderr]    Compiling quick-xml v0.31.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling syn v2.0.66
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking event-listener v5.3.1
[INFO] [stderr]     Checking async-executor v1.12.0
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.2
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]     Checking xkeysym v0.2.0
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]     Checking cursor-icon v1.1.0
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]    Compiling wayland-scanner v0.31.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling wayland-backend v0.3.3
[INFO] [stderr]     Checking xdg-home v1.1.0
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking memmap2 v0.9.4
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]     Checking owned_ttf_parser v0.21.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking ab_glyph v0.2.26
[INFO] [stderr]     Checking async-once-cell v0.5.3
[INFO] [stderr]    Compiling mime_guess2 v2.0.5
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking home v0.5.9
[INFO] [stderr]     Checking webbrowser v0.8.15
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]    Compiling litrs v0.4.1
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling document-features v0.2.8
[INFO] [stderr]    Compiling serde_derive v1.0.203
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling bytemuck_derive v1.7.0
[INFO] [stderr]    Compiling enumflags2_derive v0.7.9
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]    Compiling serde_repr v0.1.19
[INFO] [stderr]    Compiling enumn v0.1.13
[INFO] [stderr]    Compiling async-trait v0.1.80
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]     Checking bytemuck v1.16.0
[INFO] [stderr]     Checking thiserror v1.0.61
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking polling v3.7.0
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]     Checking wayland-client v0.31.2
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking wayland-cursor v0.31.1
[INFO] [stderr]     Checking enumflags2 v0.7.9
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]     Checking emath v0.27.2
[INFO] [stderr]     Checking ecolor v0.27.2
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking epaint v0.27.2
[INFO] [stderr]     Checking accesskit_consumer v0.16.1
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking egui v0.27.2
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking arboard v3.4.0
[INFO] [stderr]     Checking sctk-adwaita v0.8.1
[INFO] [stderr]     Checking smithay-clipboard v0.7.1
[INFO] [stderr]     Checking atspi-common v0.3.0
[INFO] [stderr]     Checking egui_glow v0.27.2
[INFO] [stderr]     Checking egui_extras v0.27.2
[INFO] [stderr]     Checking atspi-proxies v0.3.0
[INFO] [stderr]     Checking atspi-connection v0.3.0
[INFO] [stderr]     Checking atspi v0.19.0
[INFO] [stderr]     Checking accesskit_unix v0.6.2
[INFO] [stderr]     Checking accesskit_winit v0.16.1
[INFO] [stderr]     Checking egui-winit v0.27.2
[INFO] [stderr]     Checking eframe v0.27.2
[INFO] [stderr]     Checking KRYPTON v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fmt::Pointer`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Pointer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ALPHABET`, `keyless`, and `vig2table`
[INFO] [stdout]  --> src/analysis.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{keyless, vig2table, ALPHABET};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `aster_score`, `best_phi`, and `match_percentage`
[INFO] [stdout]  --> src/decipher.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{analysis::{aster_score, best_phi, match_percentage, substitution_cipher_score}, ALPHABET};
[INFO] [stdout]   |                        ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `analysis::match_percentage` and `vig2table`
[INFO] [stdout]  --> src/vigenere.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{analysis::match_percentage, vig2table};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vigenere::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use vigenere::*;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main.rs:208:43
[INFO] [stdout]     |
[INFO] [stdout] 208 | ...0.0],(egui::Button::new(egui::RichText::new("Analyze Encrypted & Plaintext").size(24.0).color(egui::Color32::LIGHT_GREEN)))).cli...
[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] 208 -             if ui.add_sized([500.0, 50.0],(egui::Button::new(egui::RichText::new("Analyze Encrypted & Plaintext").size(24.0).color(egui::Color32::LIGHT_GREEN)))).clicked() {
[INFO] [stdout] 208 +             if ui.add_sized([500.0, 50.0],egui::Button::new(egui::RichText::new("Analyze Encrypted & Plaintext").size(24.0).color(egui::Color32::LIGHT_GREEN)) ).clicked() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Pointer`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::Pointer;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ALPHABET`, `keyless`, and `vig2table`
[INFO] [stdout]  --> src/analysis.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{keyless, vig2table, ALPHABET};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `aster_score`, `best_phi`, and `match_percentage`
[INFO] [stdout]  --> src/decipher.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{analysis::{aster_score, best_phi, match_percentage, substitution_cipher_score}, ALPHABET};
[INFO] [stdout]   |                        ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `analysis::match_percentage` and `vig2table`
[INFO] [stdout]  --> src/vigenere.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{analysis::match_percentage, vig2table};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vigenere::*`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use vigenere::*;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main.rs:208:43
[INFO] [stdout]     |
[INFO] [stdout] 208 | ...0.0],(egui::Button::new(egui::RichText::new("Analyze Encrypted & Plaintext").size(24.0).color(egui::Color32::LIGHT_GREEN)))).cli...
[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] 208 -             if ui.add_sized([500.0, 50.0],(egui::Button::new(egui::RichText::new("Analyze Encrypted & Plaintext").size(24.0).color(egui::Color32::LIGHT_GREEN)))).clicked() {
[INFO] [stdout] 208 +             if ui.add_sized([500.0, 50.0],egui::Button::new(egui::RichText::new("Analyze Encrypted & Plaintext").size(24.0).color(egui::Color32::LIGHT_GREEN)) ).clicked() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enc_rows`
[INFO] [stdout]    --> src/decipher.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let enc_rows = enc_block.iter().map(|row| row.iter().collect::<String>()).collect::<Vec<String>>();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_rows`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pln_rows`
[INFO] [stdout]    --> src/decipher.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let pln_rows = pln_block.iter().map(|row| row.iter().collect::<String>()).collect::<Vec<String>>();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pln_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decipher.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let mut row = vec![' '; key.len()];
[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: unused variable: `num_rows`
[INFO] [stdout]    --> src/decipher.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |     let num_rows = grid.len();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]   --> src/main.rs:56:47
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enc_rows`
[INFO] [stdout]    --> src/decipher.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let enc_rows = enc_block.iter().map(|row| row.iter().collect::<String>()).collect::<Vec<String>>();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enc_rows`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pln_rows`
[INFO] [stdout]    --> src/decipher.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let pln_rows = pln_block.iter().map(|row| row.iter().collect::<String>()).collect::<Vec<String>>();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pln_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/decipher.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let mut row = vec![' '; key.len()];
[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: unused variable: `num_rows`
[INFO] [stdout]    --> src/decipher.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 217 |     let num_rows = grid.len();
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_rows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_vigenere` is never used
[INFO] [stdout]    --> src/analysis.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn decrypt_vigenere(encrypted_text: &str, key: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_char` is never used
[INFO] [stdout]    --> src/analysis.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn decrypt_char(ch: char, shift: u8) -> char {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_substitution_key` is never used
[INFO] [stdout]    --> src/analysis.rs:426:4
[INFO] [stdout]     |
[INFO] [stdout] 426 | fn find_substitution_key(plaintext: &str, ciphertext: &str) -> Option<[char; 26]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `odd_indexed_string` is never used
[INFO] [stdout]    --> src/analysis.rs:460:4
[INFO] [stdout]     |
[INFO] [stdout] 460 | fn odd_indexed_string(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `even_indexed_string` is never used
[INFO] [stdout]    --> src/analysis.rs:467:4
[INFO] [stdout]     |
[INFO] [stdout] 467 | fn even_indexed_string(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `caesar_shift` is never used
[INFO] [stdout]    --> src/analysis.rs:474:4
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn caesar_shift(text: &str, shift: i32) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ioc` is never used
[INFO] [stdout]    --> src/analysis.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn ioc(text: &str) -> f64 {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `T1` is never used
[INFO] [stdout]   --> src/crypt.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const T1: &str =  "PADHZAVAHSSFPUCPZPISLOVDZAOHAWVZZPISLAOLFBZLKAOLLHYAOZTHNULAPJMPLSKEAOLPUMVYTHAPVUDHZNHAOLYLKHUKAYHUZTPAALKBU...
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `T1p` is never used
[INFO] [stdout]   --> src/crypt.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const T1p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUN...
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALPHABET` is never used
[INFO] [stdout]   --> src/crypt.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const ALPHABET: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";                                                                
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vig1table` is never used
[INFO] [stdout]   --> src/decipher.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn vig1table(keyword2: &str) -> Vec<Vec<char>> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_vigenere_table` is never used
[INFO] [stdout]   --> src/decipher.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn print_vigenere_table(table: &Vec<Vec<char>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `every_nth_letter` is never used
[INFO] [stdout]   --> src/decipher.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn every_nth_letter(s: &str, n: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `keyless` is never used
[INFO] [stdout]    --> src/decipher.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn keyless(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_decipher_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn create_decipher_grid(key: &str, n: usize) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_to_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:192:4
[INFO] [stdout]     |
[INFO] [stdout] 192 | fn string_to_grid(s: &str, n: usize) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transpose` is never used
[INFO] [stdout]    --> src/decipher.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn transpose(grid: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pretty_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn pretty_grid(grid: &Vec<Vec<char>>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn print_grid(grid: &Vec<Vec<char>>) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_decode` is never used
[INFO] [stdout]    --> src/decipher.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub fn new_decode (
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vigenere` is never used
[INFO] [stdout]  --> src/vigenere.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn vigenere(plain_text: &str, key: &str) -> String {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `IOC` should have a snake case name
[INFO] [stdout]   --> src/analysis.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub IOC: f64, 
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `ioc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `IOC` should have a snake case name
[INFO] [stdout]   --> src/analysis.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let IOC = index_of_coincidence(encrypted_text);
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `ioc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `resultSize` should have a snake case name
[INFO] [stdout]    --> src/analysis.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |     let resultSize = intermediate[0].len();
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `result_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `resultInner` should have a snake case name
[INFO] [stdout]    --> src/analysis.rs:507:9
[INFO] [stdout]     |
[INFO] [stdout] 507 |     let resultInner = intermediate.len();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `result_inner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K1p` should have an upper case name
[INFO] [stdout]  --> src/crypt.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const K1p: &str = "BETWEENSUBTLESHADINGANDTHEABSENCEOFLIGHTLIESTHENUANCEOFIQLUSION";
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 2 - pub const K1p: &str = "BETWEENSUBTLESHADINGANDTHEABSENCEOFLIGHTLIESTHENUANCEOFIQLUSION";
[INFO] [stdout] 2 + pub const K1P: &str = "BETWEENSUBTLESHADINGANDTHEABSENCEOFLIGHTLIESTHENUANCEOFIQLUSION";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K2p` should have an upper case name
[INFO] [stdout]  --> src/crypt.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const K2p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUND...
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub const K2p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUNDERGRUUNDTOANUNKNOWNLOCATIONXDOESLANGLEYKNOWABOUTTHISTHEYSHOULDITSBURIEDOUTTHERESOMEWHEREWHOKNOWSTHEEXACTLOCATIONONLYWWTHISWASHISLASTMESSAGEXTHIRTYEIGHTDEGREESFIFTYSEVENMINUTESSIXPOINTFIVESECONDSNORTHSEVENTYSEVENDEGREESEIGHTMINUTESFORTYFOURSECONDSWESTXLAYERTWO";
[INFO] [stdout] 5 + pub const K2P: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUNDERGRUUNDTOANUNKNOWNLOCATIONXDOESLANGLEYKNOWABOUTTHISTHEYSHOULDITSBURIEDOUTTHERESOMEWHEREWHOKNOWSTHEEXACTLOCATIONONLYWWTHISWASHISLASTMESSAGEXTHIRTYEIGHTDEGREESFIFTYSEVENMINUTESSIXPOINTFIVESECONDSNORTHSEVENTYSEVENDEGREESEIGHTMINUTESFORTYFOURSECONDSWESTXLAYERTWO";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K3p` should have an upper case name
[INFO] [stdout]  --> src/crypt.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const K3p: &str = "SLOWLYDESPARATLYSLOWLYTHEREMAINSOFPASSAGEDEBRISTHATENCUMBEREDTHELOWERPARTOFTHEDOORWAYWASREMOVEDWITHTREMBLINGHA...
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 8 - pub const K3p: &str = "SLOWLYDESPARATLYSLOWLYTHEREMAINSOFPASSAGEDEBRISTHATENCUMBEREDTHELOWERPARTOFTHEDOORWAYWASREMOVEDWITHTREMBLINGHANDSIMADEATINYBREACHINTHEUPPERLEFTHANDCORNERANDTHENWIDENINGTHEHOLEALITTLEIINSERTEDTHECANDLEANDPEEREDINTHEHOTAIRESCAPINGFROMTHECHAMBERCAUSEDTHEFLAMETOFLICKERBUTPRESENTLYDETAILSOFTHEROOMWITHINEMERGEDFROMTHEMISTXCANYOUSEEANYTHINGQ";
[INFO] [stdout] 8 + pub const K3P: &str = "SLOWLYDESPARATLYSLOWLYTHEREMAINSOFPASSAGEDEBRISTHATENCUMBEREDTHELOWERPARTOFTHEDOORWAYWASREMOVEDWITHTREMBLINGHANDSIMADEATINYBREACHINTHEUPPERLEFTHANDCORNERANDTHENWIDENINGTHEHOLEALITTLEIINSERTEDTHECANDLEANDPEEREDINTHEHOTAIRESCAPINGFROMTHECHAMBERCAUSEDTHEFLAMETOFLICKERBUTPRESENTLYDETAILSOFTHEROOMWITHINEMERGEDFROMTHEMISTXCANYOUSEEANYTHINGQ";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K4p` should have an upper case name
[INFO] [stdout]   --> src/crypt.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const K4p: &str = "_____________________EASTNORTHEAST_____________________________BERLINCLOCK_______________________";
[INFO] [stdout]    |           ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 11 - pub const K4p: &str = "_____________________EASTNORTHEAST_____________________________BERLINCLOCK_______________________";
[INFO] [stdout] 11 + pub const K4P: &str = "_____________________EASTNORTHEAST_____________________________BERLINCLOCK_______________________";
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `T1p` should have an upper case name
[INFO] [stdout]   --> src/crypt.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const T1p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUN...
[INFO] [stdout]    |           ^^^ help: convert the identifier to upper case: `T1P`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]   --> src/main.rs:56:47
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_vigenere` is never used
[INFO] [stdout]    --> src/analysis.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn decrypt_vigenere(encrypted_text: &str, key: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_char` is never used
[INFO] [stdout]    --> src/analysis.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn decrypt_char(ch: char, shift: u8) -> char {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_substitution_key` is never used
[INFO] [stdout]    --> src/analysis.rs:426:4
[INFO] [stdout]     |
[INFO] [stdout] 426 | fn find_substitution_key(plaintext: &str, ciphertext: &str) -> Option<[char; 26]> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `odd_indexed_string` is never used
[INFO] [stdout]    --> src/analysis.rs:460:4
[INFO] [stdout]     |
[INFO] [stdout] 460 | fn odd_indexed_string(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `even_indexed_string` is never used
[INFO] [stdout]    --> src/analysis.rs:467:4
[INFO] [stdout]     |
[INFO] [stdout] 467 | fn even_indexed_string(s: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `caesar_shift` is never used
[INFO] [stdout]    --> src/analysis.rs:474:4
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn caesar_shift(text: &str, shift: i32) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ioc` is never used
[INFO] [stdout]    --> src/analysis.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn ioc(text: &str) -> f64 {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `T1` is never used
[INFO] [stdout]   --> src/crypt.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const T1: &str =  "PADHZAVAHSSFPUCPZPISLOVDZAOHAWVZZPISLAOLFBZLKAOLLHYAOZTHNULAPJMPLSKEAOLPUMVYTHAPVUDHZNHAOLYLKHUKAYHUZTPAALKBU...
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `T1p` is never used
[INFO] [stdout]   --> src/crypt.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const T1p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUN...
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALPHABET` is never used
[INFO] [stdout]   --> src/crypt.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const ALPHABET: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";                                                                
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vig1table` is never used
[INFO] [stdout]   --> src/decipher.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn vig1table(keyword2: &str) -> Vec<Vec<char>> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_vigenere_table` is never used
[INFO] [stdout]   --> src/decipher.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn print_vigenere_table(table: &Vec<Vec<char>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `every_nth_letter` is never used
[INFO] [stdout]   --> src/decipher.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn every_nth_letter(s: &str, n: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `keyless` is never used
[INFO] [stdout]    --> src/decipher.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn keyless(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_decipher_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn create_decipher_grid(key: &str, n: usize) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_to_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:192:4
[INFO] [stdout]     |
[INFO] [stdout] 192 | fn string_to_grid(s: &str, n: usize) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transpose` is never used
[INFO] [stdout]    --> src/decipher.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn transpose(grid: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pretty_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn pretty_grid(grid: &Vec<Vec<char>>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]    --> src/decipher.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn print_grid(grid: &Vec<Vec<char>>) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_decode` is never used
[INFO] [stdout]    --> src/decipher.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub fn new_decode (
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vigenere` is never used
[INFO] [stdout]  --> src/vigenere.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn vigenere(plain_text: &str, key: &str) -> String {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `IOC` should have a snake case name
[INFO] [stdout]   --> src/analysis.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub IOC: f64, 
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `ioc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `IOC` should have a snake case name
[INFO] [stdout]   --> src/analysis.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let IOC = index_of_coincidence(encrypted_text);
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `ioc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `resultSize` should have a snake case name
[INFO] [stdout]    --> src/analysis.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |     let resultSize = intermediate[0].len();
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `result_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `resultInner` should have a snake case name
[INFO] [stdout]    --> src/analysis.rs:507:9
[INFO] [stdout]     |
[INFO] [stdout] 507 |     let resultInner = intermediate.len();
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `result_inner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K1p` should have an upper case name
[INFO] [stdout]  --> src/crypt.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const K1p: &str = "BETWEENSUBTLESHADINGANDTHEABSENCEOFLIGHTLIESTHENUANCEOFIQLUSION";
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 2 - pub const K1p: &str = "BETWEENSUBTLESHADINGANDTHEABSENCEOFLIGHTLIESTHENUANCEOFIQLUSION";
[INFO] [stdout] 2 + pub const K1P: &str = "BETWEENSUBTLESHADINGANDTHEABSENCEOFLIGHTLIESTHENUANCEOFIQLUSION";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K2p` should have an upper case name
[INFO] [stdout]  --> src/crypt.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const K2p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUND...
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub const K2p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUNDERGRUUNDTOANUNKNOWNLOCATIONXDOESLANGLEYKNOWABOUTTHISTHEYSHOULDITSBURIEDOUTTHERESOMEWHEREWHOKNOWSTHEEXACTLOCATIONONLYWWTHISWASHISLASTMESSAGEXTHIRTYEIGHTDEGREESFIFTYSEVENMINUTESSIXPOINTFIVESECONDSNORTHSEVENTYSEVENDEGREESEIGHTMINUTESFORTYFOURSECONDSWESTXLAYERTWO";
[INFO] [stdout] 5 + pub const K2P: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUNDERGRUUNDTOANUNKNOWNLOCATIONXDOESLANGLEYKNOWABOUTTHISTHEYSHOULDITSBURIEDOUTTHERESOMEWHEREWHOKNOWSTHEEXACTLOCATIONONLYWWTHISWASHISLASTMESSAGEXTHIRTYEIGHTDEGREESFIFTYSEVENMINUTESSIXPOINTFIVESECONDSNORTHSEVENTYSEVENDEGREESEIGHTMINUTESFORTYFOURSECONDSWESTXLAYERTWO";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K3p` should have an upper case name
[INFO] [stdout]  --> src/crypt.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const K3p: &str = "SLOWLYDESPARATLYSLOWLYTHEREMAINSOFPASSAGEDEBRISTHATENCUMBEREDTHELOWERPARTOFTHEDOORWAYWASREMOVEDWITHTREMBLINGHA...
[INFO] [stdout]   |           ^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 8 - pub const K3p: &str = "SLOWLYDESPARATLYSLOWLYTHEREMAINSOFPASSAGEDEBRISTHATENCUMBEREDTHELOWERPARTOFTHEDOORWAYWASREMOVEDWITHTREMBLINGHANDSIMADEATINYBREACHINTHEUPPERLEFTHANDCORNERANDTHENWIDENINGTHEHOLEALITTLEIINSERTEDTHECANDLEANDPEEREDINTHEHOTAIRESCAPINGFROMTHECHAMBERCAUSEDTHEFLAMETOFLICKERBUTPRESENTLYDETAILSOFTHEROOMWITHINEMERGEDFROMTHEMISTXCANYOUSEEANYTHINGQ";
[INFO] [stdout] 8 + pub const K3P: &str = "SLOWLYDESPARATLYSLOWLYTHEREMAINSOFPASSAGEDEBRISTHATENCUMBEREDTHELOWERPARTOFTHEDOORWAYWASREMOVEDWITHTREMBLINGHANDSIMADEATINYBREACHINTHEUPPERLEFTHANDCORNERANDTHENWIDENINGTHEHOLEALITTLEIINSERTEDTHECANDLEANDPEEREDINTHEHOTAIRESCAPINGFROMTHECHAMBERCAUSEDTHEFLAMETOFLICKERBUTPRESENTLYDETAILSOFTHEROOMWITHINEMERGEDFROMTHEMISTXCANYOUSEEANYTHINGQ";
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K4p` should have an upper case name
[INFO] [stdout]   --> src/crypt.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const K4p: &str = "_____________________EASTNORTHEAST_____________________________BERLINCLOCK_______________________";
[INFO] [stdout]    |           ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 11 - pub const K4p: &str = "_____________________EASTNORTHEAST_____________________________BERLINCLOCK_______________________";
[INFO] [stdout] 11 + pub const K4P: &str = "_____________________EASTNORTHEAST_____________________________BERLINCLOCK_______________________";
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `T1p` should have an upper case name
[INFO] [stdout]   --> src/crypt.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const T1p: &str = "ITWASTOTALLYINVISIBLEHOWSTHATPOSSIBLETHEYUSEDTHEEARTHSMAGNETICFIELDXTHEINFORMATIONWASGATHEREDANDTRANSMITTEDUN...
[INFO] [stdout]    |           ^^^ help: convert the identifier to upper case: `T1P`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 09s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: document-features v0.2.8
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "f0cad8f7673b02c443c3fd9fd2725a8020e2f69418d8c0c77c01c2659123431e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0cad8f7673b02c443c3fd9fd2725a8020e2f69418d8c0c77c01c2659123431e", kill_on_drop: false }`
[INFO] [stdout] f0cad8f7673b02c443c3fd9fd2725a8020e2f69418d8c0c77c01c2659123431e
