[INFO] fetching crate cifra 0.9.3+post3... [INFO] checking cifra-0.9.3+post3 against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342-1 [INFO] extracting crate cifra 0.9.3+post3 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate cifra 0.9.3+post3 [INFO] finished tweaking crates.io crate cifra 0.9.3+post3 [INFO] tweaked toml for crates.io crate cifra 0.9.3+post3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cifra 0.9.3+post3 on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate cifra 0.9.3+post3 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded untrusted v0.6.2 [INFO] [stderr] Downloaded strum v0.21.0 [INFO] [stderr] Downloaded strum_macros v0.21.1 [INFO] [stderr] Downloaded test_common v1.4.0 [INFO] [stderr] Downloaded proc-macro2 v1.0.34 [INFO] [stderr] Downloaded backtrace v0.3.63 [INFO] [stderr] Downloaded diesel v1.4.8 [INFO] [stderr] Downloaded clap v3.0.0-rc.5 [INFO] [stderr] Downloaded object v0.27.1 [INFO] [stderr] Downloaded gimli v0.26.1 [INFO] [stderr] Downloaded rstest v0.6.4 [INFO] [stderr] Downloaded ring v0.14.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9494e6e6929bc4ccd2c55d445f415ace8781084290768e9a792a0d71d41c680e [INFO] running `Command { std: "docker" "start" "-a" "9494e6e6929bc4ccd2c55d445f415ace8781084290768e9a792a0d71d41c680e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9494e6e6929bc4ccd2c55d445f415ace8781084290768e9a792a0d71d41c680e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9494e6e6929bc4ccd2c55d445f415ace8781084290768e9a792a0d71d41c680e", kill_on_drop: false }` [INFO] [stdout] 9494e6e6929bc4ccd2c55d445f415ace8781084290768e9a792a0d71d41c680e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b0fa6baed989fe126b8278b230c11b7c6527c27ead1cf109d9bc9f46373f8719 [INFO] running `Command { std: "docker" "start" "-a" "b0fa6baed989fe126b8278b230c11b7c6527c27ead1cf109d9bc9f46373f8719", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.112 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.34 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.82 [INFO] [stderr] Compiling pkg-config v0.3.24 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.5 [INFO] [stderr] Checking ppv-lite86 v0.2.15 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling crossbeam-epoch v0.9.5 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling rayon-core v1.9.1 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking gimli v0.26.1 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling unicode-segmentation v1.8.0 [INFO] [stderr] Checking rustc-demangle v0.1.21 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking termcolor v1.1.2 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Checking crossbeam-channel v0.5.1 [INFO] [stderr] Compiling rayon v1.5.1 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling libsqlite3-sys v0.22.2 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking textwrap v0.14.2 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Compiling rstest v0.6.4 [INFO] [stderr] Checking untrusted v0.6.2 [INFO] [stderr] Checking dotenv v0.15.0 [INFO] [stderr] Checking remove_dir_all v0.5.3 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking object v0.27.1 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking os_str_bytes v6.0.0 [INFO] [stderr] Checking dirs-sys v0.3.6 [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking linked-hash-map v0.5.4 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking strum v0.21.0 [INFO] [stderr] Checking dirs v4.0.0 [INFO] [stderr] Checking clap v3.0.0-rc.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling backtrace v0.3.63 [INFO] [stderr] Compiling ring v0.14.6 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking crossbeam-deque v0.8.1 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking float-cmp v0.8.0 [INFO] [stderr] Checking addr2line v0.17.0 [INFO] [stderr] Checking tempfile v3.2.0 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking test_common v1.4.0 [INFO] [stderr] Compiling diesel_derives v1.4.1 [INFO] [stderr] Compiling strum_macros v0.21.1 [INFO] [stderr] Compiling diesel v1.4.8 [INFO] [stderr] Checking migrations_internals v1.4.1 [INFO] [stderr] Compiling migrations_macros v1.4.2 [INFO] [stderr] Checking diesel_migrations v1.4.0 [INFO] [stderr] Checking cifra v0.9.3+post3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `OsStr` [INFO] [stdout] --> src/attack/database.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::ffi::{OsStr, OsString}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/attack/database.rs:11:43 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::{ErrorKind, Result, ResultExt, Error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `DATABASE_STANDARD_PATH` should have an upper camel case name [INFO] [stdout] --> src/attack/database.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | struct DATABASE_STANDARD_PATH; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DatabaseStandardPath` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cipher` [INFO] [stdout] --> src/attack/frequency.rs:5:48 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cipher::vigenere::{DEFAULT_CHARSET, cipher, decipher}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error` and `ResultExt` [INFO] [stdout] --> src/cipher/substitution.rs:2:32 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{ErrorKind, Result, ResultExt, Error}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `has_error_description_deprecated` [INFO] [stdout] --> src/lib.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / error_chain! { [INFO] [stdout] 23 | | types { [INFO] [stdout] 24 | | Error, ErrorKind, ResultExt, Result; [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `docsrs`, `feature`, and `test` and 31 more [INFO] [stdout] = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `impl_error_chain_processed` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the macro `impl_error_chain_processed` may come from an old version of the `error_chain` crate, try updating your dependency with `cargo update -p error_chain` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `diesel::result::Error::DatabaseError` [INFO] [stdout] --> src/attack/caesar.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | use diesel::result::Error::DatabaseError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OsStr` [INFO] [stdout] --> src/attack/database.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::ffi::{OsStr, OsString}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/attack/database.rs:11:43 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::{ErrorKind, Result, ResultExt, Error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `DATABASE_STANDARD_PATH` should have an upper camel case name [INFO] [stdout] --> src/attack/database.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | struct DATABASE_STANDARD_PATH; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DatabaseStandardPath` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ffi::OsStr` [INFO] [stdout] --> src/attack/database.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 185 | use std::ffi::OsStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `read_to_string` [INFO] [stdout] --> src/attack/dictionaries.rs:542:50 [INFO] [stdout] | [INFO] [stdout] 542 | use std::fs::{create_dir, File, OpenOptions, read_to_string}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ffi::OsString` [INFO] [stdout] --> src/attack/dictionaries.rs:548:9 [INFO] [stdout] | [INFO] [stdout] 548 | use std::ffi::OsString; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufReader` and `Read` [INFO] [stdout] --> src/attack/dictionaries.rs:550:26 [INFO] [stdout] | [INFO] [stdout] 550 | use std::io::{Write, BufReader, Read}; [INFO] [stdout] | ^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:552:9 [INFO] [stdout] | [INFO] [stdout] 552 | use std::env::temp_dir; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `cipher` [INFO] [stdout] --> src/attack/frequency.rs:5:48 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::cipher::vigenere::{DEFAULT_CHARSET, cipher, decipher}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::attack::dictionaries::tests::ENGLISH_TEXT_WITH_PUNCTUATIONS_MARKS` [INFO] [stdout] --> src/attack/frequency.rs:394:9 [INFO] [stdout] | [INFO] [stdout] 394 | use crate::attack::dictionaries::tests::ENGLISH_TEXT_WITH_PUNCTUATIONS_MARKS; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `F64Margin` [INFO] [stdout] --> src/attack/frequency.rs:399:31 [INFO] [stdout] | [INFO] [stdout] 399 | use float_cmp::{ApproxEq, F64Margin}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ResultExt` [INFO] [stdout] --> src/cipher/substitution.rs:2:32 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::{ErrorKind, Result, ResultExt, Error}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `has_error_description_deprecated` [INFO] [stdout] --> src/lib.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | / error_chain! { [INFO] [stdout] 23 | | types { [INFO] [stdout] 24 | | Error, ErrorKind, ResultExt, Result; [INFO] [stdout] ... | [INFO] [stdout] 80 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `docsrs`, `feature`, and `test` and 31 more [INFO] [stdout] = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `impl_error_chain_processed` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the macro `impl_error_chain_processed` may come from an old version of the `error_chain` crate, try updating your dependency with `cargo update -p error_chain` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `E` [INFO] [stdout] --> src/attack/simple_attacks.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | Err(E) => return None [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_E` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/attack/frequency.rs:126:28 [INFO] [stdout] | [INFO] [stdout] 126 | .filter(|(&key, &_value)| _value == *value) [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/attack/frequency.rs:157:25 [INFO] [stdout] | [INFO] [stdout] 157 | .map(|(key, value)| key) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/attack/frequency.rs:164:25 [INFO] [stdout] | [INFO] [stdout] 164 | .map(|(key, value)| key) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `char` [INFO] [stdout] --> src/attack/frequency.rs:256:13 [INFO] [stdout] | [INFO] [stdout] 256 | for (i, char) in char_string.chars().enumerate() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_char` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/attack/frequency.rs:269:28 [INFO] [stdout] | [INFO] [stdout] 269 | let mut values = sequences.get_mut(sequence_to_find).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/attack/frequency.rs:383:21 [INFO] [stdout] | [INFO] [stdout] 383 | .map(|(key, value)| key) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphered_text` [INFO] [stdout] --> src/attack/vigenere.rs:36:26 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn brute_force(ciphered_text: T, charset: U, testing: bool)-> Result [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphered_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/attack/vigenere.rs:36:44 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn brute_force(ciphered_text: T, charset: U, testing: bool)-> Result [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_charset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `testing` [INFO] [stdout] --> src/attack/vigenere.rs:36:56 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn brute_force(ciphered_text: T, charset: U, testing: bool)-> Result [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_testing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphered_text` [INFO] [stdout] --> src/attack/vigenere.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn brute_force_mp(ciphered_text: &str, charset: &str, testing: bool)-> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphered_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/attack/vigenere.rs:47:44 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn brute_force_mp(ciphered_text: &str, charset: &str, testing: bool)-> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_charset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `testing` [INFO] [stdout] --> src/attack/vigenere.rs:47:59 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn brute_force_mp(ciphered_text: &str, charset: &str, testing: bool)-> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_testing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/affine.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/affine.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/caesar.rs:148:13 [INFO] [stdout] | [INFO] [stdout] 148 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/caesar.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset_char` is never read [INFO] [stdout] --> src/cipher/vigenere.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | let mut offset_char = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `test_env` [INFO] [stdout] --> src/attack/database.rs:201:13 [INFO] [stdout] | [INFO] [stdout] 201 | let test_env = TemporalEnvironmentVariable::new("DATABASE_URL", absolute_pathname_to_database); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_env` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_best_result` is never used [INFO] [stdout] --> src/attack/caesar.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn get_best_result(identified_languages: &Vec<(usize, IdentifiedLanguage)>)-> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `database_path` is never read [INFO] [stdout] --> src/attack/database.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct Database { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 97 | pub session: DatabaseSession, [INFO] [stdout] 98 | database_path: String [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `candidates` is never read [INFO] [stdout] --> src/attack/dictionaries.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 407 | pub struct IdentifiedLanguage { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 410 | candidates: HashMap [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IntegerKeyIterator` is never constructed [INFO] [stdout] --> src/attack/simple_attacks.rs:88:8 [INFO] [stdout] | [INFO] [stdout] 88 | struct IntegerKeyIterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/attack/simple_attacks.rs:95:8 [INFO] [stdout] | [INFO] [stdout] 94 | impl IntegerKeyIterator { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 95 | fn new(start: usize, end: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DictionaryWordKeyIterator` is never constructed [INFO] [stdout] --> src/attack/simple_attacks.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | struct DictionaryWordKeyIterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_next_word` are never used [INFO] [stdout] --> src/attack/simple_attacks.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 128 | impl DictionaryWordKeyIterator { [INFO] [stdout] | ------------------------------ associated items in this implementation [INFO] [stdout] 129 | pub fn new() -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | fn get_next_word(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `create_new_single_entry` is never used [INFO] [stdout] --> src/attack/substitution.rs:723:8 [INFO] [stdout] | [INFO] [stdout] 386 | impl Mapping { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 723 | fn create_new_single_entry(&mut self, key: char, value: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LetterHistogram` is never constructed [INFO] [stdout] --> src/attack/frequency.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct LetterHistogram { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/attack/frequency.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl LetterHistogram { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | fn from_text(text: T, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | fn from_dict(letters: HashMap, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn setup_for_matching(self, letter_counter: Counter, width: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | fn create_ordered_dict(mut self, letter_counter: Counter) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | fn set_matching_width(mut self, width: usize) -> Self{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | fn frequency(&self, key: T) -> Result [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | fn letters(&self) -> linked_hash_map::Keys { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | fn match_score(one: &LetterHistogram, other: &LetterHistogram) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_repeated_sequences` is never used [INFO] [stdout] --> src/attack/frequency.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn find_repeated_sequences(text: T, length: usize) -> HashMap> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_adjacent_separations` is never used [INFO] [stdout] --> src/attack/frequency.rs:247:4 [INFO] [stdout] | [INFO] [stdout] 247 | fn find_adjacent_separations(text: T, length: usize) -> HashMap> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_not_adjacent_separations` is never used [INFO] [stdout] --> src/attack/frequency.rs:292:4 [INFO] [stdout] | [INFO] [stdout] 292 | fn find_not_adjacent_separations(sequences: &mut HashMap>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_substrings` is never used [INFO] [stdout] --> src/attack/frequency.rs:327:8 [INFO] [stdout] | [INFO] [stdout] 327 | pub fn get_substrings(ciphertext: T, step: usize) -> Vec [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `match_substring` is never used [INFO] [stdout] --> src/attack/frequency.rs:353:4 [INFO] [stdout] | [INFO] [stdout] 353 | fn match_substring(substring: T, reference_histogram: &LetterHistogram) -> u8 [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_most_likely_subkeys` is never used [INFO] [stdout] --> src/attack/frequency.rs:370:4 [INFO] [stdout] | [INFO] [stdout] 370 | fn find_most_likely_subkeys(substring: T, reference_histogram: &LetterHistogram) -> Result> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `MultiplyingKeyBelowZero` and `AddingKeyBelowZero` are never constructed [INFO] [stdout] --> src/cipher/affine.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | enum WrongAffineKeyCauses { [INFO] [stdout] | -------------------- variants in this enum [INFO] [stdout] 17 | MultiplyingKeyBelowZero, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | MultiplyingKeyZero, [INFO] [stdout] 19 | AddingKeyBelowZero, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WrongAffineKeyCauses` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait method `fromStr` should have a snake case name [INFO] [stdout] --> src/lib.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | fn fromStr(s: T) -> Self; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `from_str` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait method `findFromIndex` should have a snake case name [INFO] [stdout] --> src/lib.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | fn findFromIndex(text: &T, text_to_find: U, index: usize) -> Option; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `find_from_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/database.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | create_folder_path(database_folder); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 129 | let _ = create_folder_path(database_folder); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Queryable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_queryable_for_language` [INFO] [stdout] ... [INFO] [stdout] 151 | pub struct Language { [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Queryable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Queryable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Queryable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:148:21 [INFO] [stdout] | [INFO] [stdout] 148 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `HasTable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_language` [INFO] [stdout] ... [INFO] [stdout] 151 | pub struct Language { [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:148:21 [INFO] [stdout] | [INFO] [stdout] 148 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Identifiable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_language` [INFO] [stdout] ... [INFO] [stdout] 151 | pub struct Language { [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newlanguage` [INFO] [stdout] 157 | #[table_name="languages"] [INFO] [stdout] 158 | pub struct NewLanguage<'a> { [INFO] [stdout] | ----------- `NewLanguage` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | #[derive(Insertable)] [INFO] [stdout] | -^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newlanguage` [INFO] [stdout] 157 | #[table_name="languages"] [INFO] [stdout] 158 | pub struct NewLanguage<'a> { [INFO] [stdout] | ----------- `NewLanguage` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `UndecoratedInsertRecord` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newlanguage` [INFO] [stdout] 157 | #[table_name="languages"] [INFO] [stdout] 158 | pub struct NewLanguage<'a> { [INFO] [stdout] | ----------- `NewLanguage` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:10 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Queryable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_queryable_for_word` [INFO] [stdout] ... [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Queryable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Queryable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Queryable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `HasTable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_word` [INFO] [stdout] ... [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Identifiable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_word` [INFO] [stdout] ... [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:35 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `BelongsTo` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_associations_for_word` [INFO] [stdout] 165 | #[table_name="words"] [INFO] [stdout] 166 | #[belongs_to(Language)] [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Associations` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Associations` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Associations` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:174:10 [INFO] [stdout] | [INFO] [stdout] 174 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newword` [INFO] [stdout] 175 | #[table_name="words"] [INFO] [stdout] 176 | pub struct NewWord<'a> { [INFO] [stdout] | ------- `NewWord` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:174:10 [INFO] [stdout] | [INFO] [stdout] 174 | #[derive(Insertable)] [INFO] [stdout] | -^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newword` [INFO] [stdout] 175 | #[table_name="words"] [INFO] [stdout] 176 | pub struct NewWord<'a> { [INFO] [stdout] | ------- `NewWord` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:174:10 [INFO] [stdout] | [INFO] [stdout] 174 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `UndecoratedInsertRecord` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newword` [INFO] [stdout] 175 | #[table_name="words"] [INFO] [stdout] 176 | pub struct NewWord<'a> { [INFO] [stdout] | ------- `NewWord` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/attack/dictionaries.rs:164:41 [INFO] [stdout] | [INFO] [stdout] 164 | let _word_clone = _word.as_ref().clone(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/attack/dictionaries.rs:340:17 [INFO] [stdout] | [INFO] [stdout] 340 | pub fn iter(&self) -> InsertionOrderedSetIterator { [INFO] [stdout] | ^^^^^ ------------------------------ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 340 | pub fn iter(&self) -> InsertionOrderedSetIterator<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/simple_attacks.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | Err(E) => return None [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_A` should have a snake case name [INFO] [stdout] --> src/attack/frequency.rs:122:34 [INFO] [stdout] | [INFO] [stdout] 122 | values_ordered.sort_by(|&item_A, &item_B| item_B.cmp(item_A)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_B` should have a snake case name [INFO] [stdout] --> src/attack/frequency.rs:122:43 [INFO] [stdout] | [INFO] [stdout] 122 | values_ordered.sort_by(|&item_A, &item_B| item_B.cmp(item_A)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/frequency.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | ordered_dict_iter.advance_by(self.ordered_dict.len()-width); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 162 | let _ = ordered_dict_iter.advance_by(self.ordered_dict.len()-width); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/attack/frequency.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | fn letters(&self) -> linked_hash_map::Keys { [INFO] [stdout] | ^^^^^ -------------------------------- the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 190 | fn letters(&self) -> linked_hash_map::Keys<'_, char, u64> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/frequency.rs:334:9 [INFO] [stdout] | [INFO] [stdout] 334 | ciphered_stream_iter.advance_by(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 334 | let _ = ciphered_stream_iter.advance_by(i); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_A` should have a snake case name [INFO] [stdout] --> src/cipher/common.rs:186:25 [INFO] [stdout] | [INFO] [stdout] 186 | items.sort_by(|&item_A, &item_B| item_B.1.cmp(item_A.1)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_B` should have a snake case name [INFO] [stdout] --> src/cipher/common.rs:186:34 [INFO] [stdout] | [INFO] [stdout] 186 | items.sort_by(|&item_A, &item_B| item_B.1.cmp(item_A.1)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | languages (id) { [INFO] [stdout] 3 | | id -> Integer, [INFO] [stdout] 4 | | language -> Text, [INFO] [stdout] 5 | | } [INFO] [stdout] 6 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | `table` is not local [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_table` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | languages (id) { [INFO] [stdout] 3 | | id -> Integer, [INFO] [stdout] | | -- `id` is not local [INFO] [stdout] 4 | | language -> Text, [INFO] [stdout] 5 | | } [INFO] [stdout] 6 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | languages (id) { [INFO] [stdout] 3 | | id -> Integer, [INFO] [stdout] 4 | | language -> Text, [INFO] [stdout] | | -------- `language` is not local [INFO] [stdout] 5 | | } [INFO] [stdout] 6 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_language` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:809:14 [INFO] [stdout] | [INFO] [stdout] 809 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:809:24 [INFO] [stdout] | [INFO] [stdout] 809 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:818:14 [INFO] [stdout] | [INFO] [stdout] 818 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | `table` is not local [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_table` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:818:24 [INFO] [stdout] | [INFO] [stdout] 818 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:835:14 [INFO] [stdout] | [INFO] [stdout] 835 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:835:24 [INFO] [stdout] | [INFO] [stdout] 835 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:850:14 [INFO] [stdout] | [INFO] [stdout] 850 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:850:24 [INFO] [stdout] | [INFO] [stdout] 850 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:865:14 [INFO] [stdout] | [INFO] [stdout] 865 | let (temp_dir, temp_env_database_path) = loaded_micro_dictionary_temp_dir(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:865:24 [INFO] [stdout] | [INFO] [stdout] 865 | let (temp_dir, temp_env_database_path) = loaded_micro_dictionary_temp_dir(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] | | -- `id` is not local [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/attack/dictionaries.rs:864:13 [INFO] [stdout] | [INFO] [stdout] 864 | let mut micro_dictionaries = get_micro_dictionaries_content(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] | | ---- `word` is not local [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_word` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:902:24 [INFO] [stdout] | [INFO] [stdout] 902 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] 12 | | word_pattern -> Text, [INFO] [stdout] | | ------------ `word_pattern` is not local [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_word_pattern` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] 12 | | word_pattern -> Text, [INFO] [stdout] 13 | | language_id -> Integer, [INFO] [stdout] | | ----------- `language_id` is not local [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_language_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:944:14 [INFO] [stdout] | [INFO] [stdout] 944 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:944:24 [INFO] [stdout] | [INFO] [stdout] 944 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/dictionaries.rs:959:13 [INFO] [stdout] | [INFO] [stdout] 959 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:990:14 [INFO] [stdout] | [INFO] [stdout] 990 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `temp_env_database_path` [INFO] [stdout] --> src/attack/dictionaries.rs:990:24 [INFO] [stdout] | [INFO] [stdout] 990 | let (temp_dir, temp_env_database_path) = temporary_database_folder(None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_env_database_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_micro_dictionary_temp_dir` [INFO] [stdout] --> src/attack/dictionaries.rs:1020:27 [INFO] [stdout] | [INFO] [stdout] 1020 | fn test_get_all_words(loaded_micro_dictionary_temp_dir: (TestEnvironment, TemporalEnvironmentVariable)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_micro_dictionary_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `E` [INFO] [stdout] --> src/attack/simple_attacks.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | Err(E) => return None [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_E` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_micro_dictionary_temp_dir` [INFO] [stdout] --> src/attack/simple_attacks.rs:281:43 [INFO] [stdout] | [INFO] [stdout] 281 | fn test_dictionary_word_key_generator(loaded_micro_dictionary_temp_dir: (TestEnvironment, TemporalEnvironmentVariable)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_micro_dictionary_temp_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/substitution.rs:872:13 [INFO] [stdout] | [INFO] [stdout] 872 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/substitution.rs:894:13 [INFO] [stdout] | [INFO] [stdout] 894 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `missing` [INFO] [stdout] --> src/attack/substitution.rs:1125:13 [INFO] [stdout] | [INFO] [stdout] 1125 | let missing: Vec = expected_list.iter().cloned().filter(|_mapping| !recovered_mappings.contains(&_mapping)).collect(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_missing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/attack/substitution.rs:1073:13 [INFO] [stdout] | [INFO] [stdout] 1073 | let mut expected_mapping_1 = mapping!(THIS_TEST_CHARSET, {"1": {"a"}, [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/attack/substitution.rs:1078:13 [INFO] [stdout] | [INFO] [stdout] 1078 | let mut expected_mapping_2 = mapping!(THIS_TEST_CHARSET, {"1": {"a"}, [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/attack/substitution.rs:1083:13 [INFO] [stdout] | [INFO] [stdout] 1083 | let mut expected_mapping_3 = mapping!(THIS_TEST_CHARSET, {"1": {"b"}, [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/attack/substitution.rs:1088:13 [INFO] [stdout] | [INFO] [stdout] 1088 | let mut expected_mapping_4 = mapping!(THIS_TEST_CHARSET, {"1": {"b"}, [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/attack/substitution.rs:1093:13 [INFO] [stdout] | [INFO] [stdout] 1093 | let mut expected_mapping_5 = mapping!(THIS_TEST_CHARSET, {"1": {"a"}, [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/attack/substitution.rs:1098:13 [INFO] [stdout] | [INFO] [stdout] 1098 | let mut expected_mapping_6 = mapping!(THIS_TEST_CHARSET, {"1": {"a"}, [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/attack/substitution.rs:1103:13 [INFO] [stdout] | [INFO] [stdout] 1103 | let mut expected_mapping_7 = mapping!(THIS_TEST_CHARSET, {"1": {"b"}, [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/attack/substitution.rs:1108:13 [INFO] [stdout] | [INFO] [stdout] 1108 | let mut expected_mapping_8 = mapping!(THIS_TEST_CHARSET, {"1": {"b"}, [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/attack/substitution.rs:1113:13 [INFO] [stdout] | [INFO] [stdout] 1113 | let mut expected_list = vec![ [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/attack/substitution.rs:1155:13 [INFO] [stdout] | [INFO] [stdout] 1155 | let mut mapping = mapping!(TEST_CHARSET, [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `extracted_candidates` [INFO] [stdout] --> src/attack/substitution.rs:1210:38 [INFO] [stdout] | [INFO] [stdout] 1210 | let (extracted_cipherletter, extracted_candidates) = mapping.pop_item() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extracted_candidates` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/transposition.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `loaded_dictionaries` [INFO] [stdout] --> src/attack/transposition.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | let loaded_dictionaries = LoadedDictionaries::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_loaded_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/attack/frequency.rs:126:28 [INFO] [stdout] | [INFO] [stdout] 126 | .filter(|(&key, &_value)| _value == *value) [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/attack/frequency.rs:157:25 [INFO] [stdout] | [INFO] [stdout] 157 | .map(|(key, value)| key) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/attack/frequency.rs:164:25 [INFO] [stdout] | [INFO] [stdout] 164 | .map(|(key, value)| key) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `char` [INFO] [stdout] --> src/attack/frequency.rs:256:13 [INFO] [stdout] | [INFO] [stdout] 256 | for (i, char) in char_string.chars().enumerate() { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_char` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/attack/frequency.rs:269:28 [INFO] [stdout] | [INFO] [stdout] 269 | let mut values = sequences.get_mut(sequence_to_find).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/attack/frequency.rs:383:21 [INFO] [stdout] | [INFO] [stdout] 383 | .map(|(key, value)| key) [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphered_text` [INFO] [stdout] --> src/attack/vigenere.rs:36:26 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn brute_force(ciphered_text: T, charset: U, testing: bool)-> Result [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphered_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/attack/vigenere.rs:36:44 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn brute_force(ciphered_text: T, charset: U, testing: bool)-> Result [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_charset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `testing` [INFO] [stdout] --> src/attack/vigenere.rs:36:56 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn brute_force(ciphered_text: T, charset: U, testing: bool)-> Result [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_testing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphered_text` [INFO] [stdout] --> src/attack/vigenere.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn brute_force_mp(ciphered_text: &str, charset: &str, testing: bool)-> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ciphered_text` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/attack/vigenere.rs:47:44 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn brute_force_mp(ciphered_text: &str, charset: &str, testing: bool)-> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_charset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `testing` [INFO] [stdout] --> src/attack/vigenere.rs:47:59 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn brute_force_mp(ciphered_text: &str, charset: &str, testing: bool)-> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_testing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:634:9 [INFO] [stdout] | [INFO] [stdout] 634 | return bail!("You tried to use attack_file function with a configuration that is not for attack mode.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:646:14 [INFO] [stdout] | [INFO] [stdout] 646 | _ => return bail!("Given algorithm does not use integer key and charset.") [INFO] [stdout] | ^^^^^^^-------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:658:14 [INFO] [stdout] | [INFO] [stdout] 658 | _ => return bail!("Given algorithm does not use string key and charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:669:14 [INFO] [stdout] | [INFO] [stdout] 669 | _ => return bail!("Given algorithm does not use integer key or includes a charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:681:14 [INFO] [stdout] | [INFO] [stdout] 681 | _ => return bail!("Given algorithm does not use integer key and charset.") [INFO] [stdout] | ^^^^^^^-------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:693:14 [INFO] [stdout] | [INFO] [stdout] 693 | _ => return bail!("Given algorithm does not use string key and charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:704:14 [INFO] [stdout] | [INFO] [stdout] 704 | _ => return bail!("Given algorithm does not use integer key or includes a charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:716:14 [INFO] [stdout] | [INFO] [stdout] 716 | _ => return bail!("Given algorithm does not use charset.") [INFO] [stdout] | ^^^^^^^---------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:727:14 [INFO] [stdout] | [INFO] [stdout] 727 | _ => return bail!("Given algorithm do use string key and charset") [INFO] [stdout] | ^^^^^^^------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:738:14 [INFO] [stdout] | [INFO] [stdout] 738 | _ => return bail!("Given algorithm do use charset.") [INFO] [stdout] | ^^^^^^^---------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:749:14 [INFO] [stdout] | [INFO] [stdout] 749 | _ => return bail!("Given algorithm don't have testing mode.") [INFO] [stdout] | ^^^^^^^------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cipher/transposition.rs:324:13 [INFO] [stdout] | [INFO] [stdout] 324 | let mut transposition_matrix = vec![ [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `offset_char` is never read [INFO] [stdout] --> src/cipher/vigenere.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | let mut offset_char = String::new(); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:634:9 [INFO] [stdout] | [INFO] [stdout] 634 | return bail!("You tried to use attack_file function with a configuration that is not for attack mode.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:646:14 [INFO] [stdout] | [INFO] [stdout] 646 | _ => return bail!("Given algorithm does not use integer key and charset.") [INFO] [stdout] | ^^^^^^^-------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:658:14 [INFO] [stdout] | [INFO] [stdout] 658 | _ => return bail!("Given algorithm does not use string key and charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:669:14 [INFO] [stdout] | [INFO] [stdout] 669 | _ => return bail!("Given algorithm does not use integer key or includes a charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:681:14 [INFO] [stdout] | [INFO] [stdout] 681 | _ => return bail!("Given algorithm does not use integer key and charset.") [INFO] [stdout] | ^^^^^^^-------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:693:14 [INFO] [stdout] | [INFO] [stdout] 693 | _ => return bail!("Given algorithm does not use string key and charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:704:14 [INFO] [stdout] | [INFO] [stdout] 704 | _ => return bail!("Given algorithm does not use integer key or includes a charset.") [INFO] [stdout] | ^^^^^^^------------------------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:716:14 [INFO] [stdout] | [INFO] [stdout] 716 | _ => return bail!("Given algorithm does not use charset.") [INFO] [stdout] | ^^^^^^^---------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:727:14 [INFO] [stdout] | [INFO] [stdout] 727 | _ => return bail!("Given algorithm do use string key and charset") [INFO] [stdout] | ^^^^^^^------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:738:14 [INFO] [stdout] | [INFO] [stdout] 738 | _ => return bail!("Given algorithm do use charset.") [INFO] [stdout] | ^^^^^^^---------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/bin/main.rs:749:14 [INFO] [stdout] | [INFO] [stdout] 749 | _ => return bail!("Given algorithm don't have testing mode.") [INFO] [stdout] | ^^^^^^^------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | any code following this expression is unreachable [INFO] [stdout] | unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphered_file` [INFO] [stdout] --> src/bin/main.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | ciphered_file, charset } => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `ciphered_file: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `deciphered_file` [INFO] [stdout] --> src/bin/main.rs:466:32 [INFO] [stdout] | [INFO] [stdout] 466 | file_to_decipher , deciphered_file, charset } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try ignoring the field: `deciphered_file: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `algorithm` [INFO] [stdout] --> src/bin/main.rs:521:25 [INFO] [stdout] | [INFO] [stdout] 521 | Modes::Cipher { algorithm, key, file_to_cipher, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `algorithm: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/bin/main.rs:521:36 [INFO] [stdout] | [INFO] [stdout] 521 | Modes::Cipher { algorithm, key, file_to_cipher, [INFO] [stdout] | ^^^ help: try ignoring the field: `key: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_to_cipher` [INFO] [stdout] --> src/bin/main.rs:521:41 [INFO] [stdout] | [INFO] [stdout] 521 | Modes::Cipher { algorithm, key, file_to_cipher, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `file_to_cipher: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/bin/main.rs:522:28 [INFO] [stdout] | [INFO] [stdout] 522 | ciphered_file, charset } => { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `charset: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `algorithm` [INFO] [stdout] --> src/bin/main.rs:525:27 [INFO] [stdout] | [INFO] [stdout] 525 | Modes::Decipher { algorithm, key, file_to_decipher, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `algorithm: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/bin/main.rs:525:38 [INFO] [stdout] | [INFO] [stdout] 525 | Modes::Decipher { algorithm, key, file_to_decipher, [INFO] [stdout] | ^^^ help: try ignoring the field: `key: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_to_decipher` [INFO] [stdout] --> src/bin/main.rs:525:43 [INFO] [stdout] | [INFO] [stdout] 525 | Modes::Decipher { algorithm, key, file_to_decipher, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try ignoring the field: `file_to_decipher: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/bin/main.rs:526:30 [INFO] [stdout] | [INFO] [stdout] 526 | deciphered_file, charset }=> { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `charset: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `algorithm` [INFO] [stdout] --> src/bin/main.rs:529:25 [INFO] [stdout] | [INFO] [stdout] 529 | Modes::Attack { algorithm, file_to_attack, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `algorithm: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_to_attack` [INFO] [stdout] --> src/bin/main.rs:529:36 [INFO] [stdout] | [INFO] [stdout] 529 | Modes::Attack { algorithm, file_to_attack, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `file_to_attack: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/bin/main.rs:530:30 [INFO] [stdout] | [INFO] [stdout] 530 | deciphered_file, charset, output_recovered_key [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `charset: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_recovered_key` [INFO] [stdout] --> src/bin/main.rs:563:26 [INFO] [stdout] | [INFO] [stdout] 563 | deciphered_file, output_recovered_key, charset [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `output_recovered_key: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_best_result` is never used [INFO] [stdout] --> src/attack/caesar.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn get_best_result(identified_languages: &Vec<(usize, IdentifiedLanguage)>)-> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `database_path` is never read [INFO] [stdout] --> src/attack/database.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct Database { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 97 | pub session: DatabaseSession, [INFO] [stdout] 98 | database_path: String [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `candidates` is never read [INFO] [stdout] --> src/attack/dictionaries.rs:410:5 [INFO] [stdout] | [INFO] [stdout] 407 | pub struct IdentifiedLanguage { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 410 | candidates: HashMap [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `temp_env` and `temp_env_var` are never read [INFO] [stdout] --> src/attack/dictionaries.rs:659:9 [INFO] [stdout] | [INFO] [stdout] 656 | pub struct LoadedDictionaries { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 659 | temp_env: TestEnvironment, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 660 | temp_env_var: TemporalEnvironmentVariable [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `text_file` is never read [INFO] [stdout] --> src/attack/dictionaries.rs:752:13 [INFO] [stdout] | [INFO] [stdout] 751 | struct TemporaryTextFile { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 752 | pub text_file: File, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `start` is never read [INFO] [stdout] --> src/attack/simple_attacks.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 88 | struct IntegerKeyIterator { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 89 | start: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `create_new_single_entry` is never used [INFO] [stdout] --> src/attack/substitution.rs:723:8 [INFO] [stdout] | [INFO] [stdout] 386 | impl Mapping { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 723 | fn create_new_single_entry(&mut self, key: char, value: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `language` is never read [INFO] [stdout] --> src/attack/substitution.rs:817:9 [INFO] [stdout] | [INFO] [stdout] 815 | struct TestSet { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 816 | text_file: &'static str, [INFO] [stdout] 817 | language: &'static str, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_dict` is never used [INFO] [stdout] --> src/attack/frequency.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl LetterHistogram { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | fn from_dict(letters: HashMap, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `MultiplyingKeyBelowZero` and `AddingKeyBelowZero` are never constructed [INFO] [stdout] --> src/cipher/affine.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 16 | enum WrongAffineKeyCauses { [INFO] [stdout] | -------------------- variants in this enum [INFO] [stdout] 17 | MultiplyingKeyBelowZero, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | MultiplyingKeyZero, [INFO] [stdout] 19 | AddingKeyBelowZero, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WrongAffineKeyCauses` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait method `fromStr` should have a snake case name [INFO] [stdout] --> src/lib.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | fn fromStr(s: T) -> Self; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `from_str` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait method `findFromIndex` should have a snake case name [INFO] [stdout] --> src/lib.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | fn findFromIndex(text: &T, text_to_find: U, index: usize) -> Option; [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `find_from_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/database.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | create_folder_path(database_folder); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 129 | let _ = create_folder_path(database_folder); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Queryable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_queryable_for_language` [INFO] [stdout] ... [INFO] [stdout] 151 | pub struct Language { [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Queryable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Queryable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Queryable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:148:21 [INFO] [stdout] | [INFO] [stdout] 148 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `HasTable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_language` [INFO] [stdout] ... [INFO] [stdout] 151 | pub struct Language { [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:148:21 [INFO] [stdout] | [INFO] [stdout] 148 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Identifiable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_language` [INFO] [stdout] ... [INFO] [stdout] 151 | pub struct Language { [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newlanguage` [INFO] [stdout] 157 | #[table_name="languages"] [INFO] [stdout] 158 | pub struct NewLanguage<'a> { [INFO] [stdout] | ----------- `NewLanguage` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | #[derive(Insertable)] [INFO] [stdout] | -^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newlanguage` [INFO] [stdout] 157 | #[table_name="languages"] [INFO] [stdout] 158 | pub struct NewLanguage<'a> { [INFO] [stdout] | ----------- `NewLanguage` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:156:10 [INFO] [stdout] | [INFO] [stdout] 156 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `UndecoratedInsertRecord` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newlanguage` [INFO] [stdout] 157 | #[table_name="languages"] [INFO] [stdout] 158 | pub struct NewLanguage<'a> { [INFO] [stdout] | ----------- `NewLanguage` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:10 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Queryable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_queryable_for_word` [INFO] [stdout] ... [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Queryable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Queryable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Queryable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `HasTable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_word` [INFO] [stdout] ... [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Identifiable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_identifiable_for_word` [INFO] [stdout] ... [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Identifiable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Identifiable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Identifiable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:164:35 [INFO] [stdout] | [INFO] [stdout] 164 | #[derive(Queryable, Identifiable, Associations, Debug, PartialEq)] [INFO] [stdout] | ^----------- [INFO] [stdout] | | [INFO] [stdout] | `BelongsTo` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_associations_for_word` [INFO] [stdout] 165 | #[table_name="words"] [INFO] [stdout] 166 | #[belongs_to(Language)] [INFO] [stdout] | -------- `Language` is not local [INFO] [stdout] 167 | pub struct Word { [INFO] [stdout] | ---- `Word` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Associations` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Associations` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Associations` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:174:10 [INFO] [stdout] | [INFO] [stdout] 174 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newword` [INFO] [stdout] 175 | #[table_name="words"] [INFO] [stdout] 176 | pub struct NewWord<'a> { [INFO] [stdout] | ------- `NewWord` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:174:10 [INFO] [stdout] | [INFO] [stdout] 174 | #[derive(Insertable)] [INFO] [stdout] | -^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newword` [INFO] [stdout] 175 | #[table_name="words"] [INFO] [stdout] 176 | pub struct NewWord<'a> { [INFO] [stdout] | ------- `NewWord` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/attack/database.rs:174:10 [INFO] [stdout] | [INFO] [stdout] 174 | #[derive(Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `UndecoratedInsertRecord` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newword` [INFO] [stdout] 175 | #[table_name="words"] [INFO] [stdout] 176 | pub struct NewWord<'a> { [INFO] [stdout] | ------- `NewWord` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/database.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 202 | create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 202 | let _ = create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/database.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | create_folder_path(database_folder); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 213 | let _ = create_folder_path(database_folder); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/attack/dictionaries.rs:164:41 [INFO] [stdout] | [INFO] [stdout] 164 | let _word_clone = _word.as_ref().clone(); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/attack/dictionaries.rs:340:17 [INFO] [stdout] | [INFO] [stdout] 340 | pub fn iter(&self) -> InsertionOrderedSetIterator { [INFO] [stdout] | ^^^^^ ------------------------------ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 340 | pub fn iter(&self) -> InsertionOrderedSetIterator<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:666:13 [INFO] [stdout] | [INFO] [stdout] 666 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 666 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:670:13 [INFO] [stdout] | [INFO] [stdout] 670 | create_dir(&resources_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 670 | let _ = create_dir(&resources_path); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:685:17 [INFO] [stdout] | [INFO] [stdout] 685 | dictionary.populate(language_book); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 685 | let _ = dictionary.populate(language_book); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:688:13 [INFO] [stdout] | [INFO] [stdout] 688 | LANGUAGES.iter().map(|x| _languages.push(x.to_string())).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 688 | let _ = LANGUAGES.iter().map(|x| _languages.push(x.to_string())).collect::>(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:731:9 [INFO] [stdout] | [INFO] [stdout] 731 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 731 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:737:13 [INFO] [stdout] | [INFO] [stdout] 737 | _words.iter().map(|_word| language_dictionary.add_word(_word)).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 737 | let _ = _words.iter().map(|_word| language_dictionary.add_word(_word)).collect::>(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:772:13 [INFO] [stdout] | [INFO] [stdout] 772 | text_file.write_all(text.as_ref().as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 772 | let _ = text_file.write_all(text.as_ref().as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:819:9 [INFO] [stdout] | [INFO] [stdout] 819 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 819 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:822:13 [INFO] [stdout] | [INFO] [stdout] 822 | Dictionary::new("english", true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 822 | let _ = Dictionary::new("english", true); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:836:9 [INFO] [stdout] | [INFO] [stdout] 836 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 836 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:867:9 [INFO] [stdout] | [INFO] [stdout] 867 | Dictionary::remove_dictionary(language_to_remove); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 867 | let _ = Dictionary::remove_dictionary(language_to_remove); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:889:13 [INFO] [stdout] | [INFO] [stdout] 889 | ... temporary_text.normalized_text.to_lowercase().split_ascii_whitespace().map(|_word| expected_set.insert(_word.to_string())).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 889 | let _ = temporary_text.normalized_text.to_lowercase().split_ascii_whitespace().map(|_word| expected_set.insert(_word.to_string())).collect::>(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:903:9 [INFO] [stdout] | [INFO] [stdout] 903 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 903 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:911:9 [INFO] [stdout] | [INFO] [stdout] 911 | expected_lowercase_content.split_ascii_whitespace().map(|x| expected_set.insert(x)).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 911 | let _ = expected_lowercase_content.split_ascii_whitespace().map(|x| expected_set.insert(x)).collect::>(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `full_loaded_temp_dictionaries` [INFO] [stdout] --> src/bin/main.rs:1101:54 [INFO] [stdout] | [INFO] [stdout] 1101 | fn test_cipher_caesar(temp_dir: TestEnvironment, full_loaded_temp_dictionaries: LoadedDictionaries) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_loaded_temp_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `full_loaded_temp_dictionaries` [INFO] [stdout] --> src/bin/main.rs:1119:56 [INFO] [stdout] | [INFO] [stdout] 1119 | fn test_decipher_caesar(temp_dir: TestEnvironment, full_loaded_temp_dictionaries: LoadedDictionaries) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_loaded_temp_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `full_loaded_temp_dictionaries` [INFO] [stdout] --> src/bin/main.rs:1137:60 [INFO] [stdout] | [INFO] [stdout] 1137 | fn test_cipher_substitution(temp_dir: TestEnvironment, full_loaded_temp_dictionaries: LoadedDictionaries){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_loaded_temp_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:915:13 [INFO] [stdout] | [INFO] [stdout] 915 | dictionary.populate(temporary_text_file.temp_filename.as_path()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 915 | let _ = dictionary.populate(temporary_text_file.temp_filename.as_path()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:929:13 [INFO] [stdout] | [INFO] [stdout] 929 | test_tuple.2.to_lowercase().split_ascii_whitespace().map(|_word| expected_set.insert(_word.to_string())).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 929 | let _ = test_tuple.2.to_lowercase().split_ascii_whitespace().map(|_word| expected_set.insert(_word.to_string())).collect::>(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:945:9 [INFO] [stdout] | [INFO] [stdout] 945 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 945 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `std::iter::Iterator::collect` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:949:9 [INFO] [stdout] | [INFO] [stdout] 949 | micro_dictionaries[_language].iter().map(|_word| words_to_add.insert(_word.clone())).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 949 | let _ = micro_dictionaries[_language].iter().map(|_word| words_to_add.insert(_word.clone())).collect::>(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/dictionaries.rs:991:9 [INFO] [stdout] | [INFO] [stdout] 991 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 991 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/simple_attacks.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | Err(E) => return None [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:877:21 [INFO] [stdout] | [INFO] [stdout] 877 | Err(E) => {assert!(false, E); String::new()} [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:877:43 [INFO] [stdout] | [INFO] [stdout] 877 | Err(E) => {assert!(false, E); String::new()} [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 877 | Err(E) => {assert!(false, "{}", E); String::new()} [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:899:21 [INFO] [stdout] | [INFO] [stdout] 899 | Err(E) => {assert!(false, E); String::new()} [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:899:43 [INFO] [stdout] | [INFO] [stdout] 899 | Err(E) => {assert!(false, E); String::new()} [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 899 | Err(E) => {assert!(false, "{}", E); String::new()} [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:913:17 [INFO] [stdout] | [INFO] [stdout] 913 | Err(E) => {assert!(false, E); PathBuf::new()} [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:913:39 [INFO] [stdout] | [INFO] [stdout] 913 | Err(E) => {assert!(false, E); PathBuf::new()} [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 913 | Err(E) => {assert!(false, "{}", E); PathBuf::new()} [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:918:17 [INFO] [stdout] | [INFO] [stdout] 918 | Err(E) => {assert!(false, E); File::create("/tmp").unwrap()} [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:918:39 [INFO] [stdout] | [INFO] [stdout] 918 | Err(E) => {assert!(false, E); File::create("/tmp").unwrap()} [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 918 | Err(E) => {assert!(false, "{}", E); File::create("/tmp").unwrap()} [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:923:17 [INFO] [stdout] | [INFO] [stdout] 923 | Err(E) => {assert!(false, E); ()} [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:923:39 [INFO] [stdout] | [INFO] [stdout] 923 | Err(E) => {assert!(false, E); ()} [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 923 | Err(E) => {assert!(false, "{}", E); ()} [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `full_loaded_temp_dictionaries` [INFO] [stdout] --> src/bin/main.rs:1156:62 [INFO] [stdout] | [INFO] [stdout] 1156 | fn test_decipher_substitution(temp_dir: TestEnvironment, full_loaded_temp_dictionaries: LoadedDictionaries){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_loaded_temp_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:939:17 [INFO] [stdout] | [INFO] [stdout] 939 | Err(E) => {assert!(false, E); String::new()} [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:939:39 [INFO] [stdout] | [INFO] [stdout] 939 | Err(E) => {assert!(false, E); String::new()} [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 939 | Err(E) => {assert!(false, "{}", E); String::new()} [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `THIS_TEST_CHARSET` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:1065:13 [INFO] [stdout] | [INFO] [stdout] 1065 | let THIS_TEST_CHARSET = "12345"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `this_test_charset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:1213:17 [INFO] [stdout] | [INFO] [stdout] 1213 | format!("Extracted key {} was not among original ones.", &extracted_cipherletter)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1213 - format!("Extracted key {} was not among original ones.", &extracted_cipherletter)); [INFO] [stdout] 1213 + "Extracted key {} was not among original ones.", &extracted_cipherletter); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:1223:17 [INFO] [stdout] | [INFO] [stdout] 1223 | format!("Extracted cipherletter {} was not removed from mapping", &extracted_cipherletter)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1223 - format!("Extracted cipherletter {} was not removed from mapping", &extracted_cipherletter)); [INFO] [stdout] 1223 + "Extracted cipherletter {} was not removed from mapping", &extracted_cipherletter); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/attack/substitution.rs:1229:20 [INFO] [stdout] | [INFO] [stdout] 1229 | if let Err(E) = mapping.pop_item() { [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/attack/substitution.rs:1232:41 [INFO] [stdout] | [INFO] [stdout] 1232 | error => assert!(false, format!("Raised error was not the one \ [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 1233 | | we were expecting but {} instead", error)) [INFO] [stdout] | |___________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 1232 ~ error => assert!(false, "Raised error was not the one \ [INFO] [stdout] 1233 ~ we were expecting but {} instead", error) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_A` should have a snake case name [INFO] [stdout] --> src/attack/frequency.rs:122:34 [INFO] [stdout] | [INFO] [stdout] 122 | values_ordered.sort_by(|&item_A, &item_B| item_B.cmp(item_A)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_B` should have a snake case name [INFO] [stdout] --> src/attack/frequency.rs:122:43 [INFO] [stdout] | [INFO] [stdout] 122 | values_ordered.sort_by(|&item_A, &item_B| item_B.cmp(item_A)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `full_loaded_temp_dictionaries` [INFO] [stdout] --> src/bin/main.rs:1175:54 [INFO] [stdout] | [INFO] [stdout] 1175 | fn test_attack_caesar(temp_dir: TestEnvironment, full_loaded_temp_dictionaries: LoadedDictionaries){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_loaded_temp_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `full_loaded_temp_dictionaries` [INFO] [stdout] --> src/bin/main.rs:1192:73 [INFO] [stdout] | [INFO] [stdout] 1192 | fn test_attack_caesar_with_recovered_key(temp_dir: TestEnvironment, full_loaded_temp_dictionaries: LoadedDictionaries){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_loaded_temp_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/frequency.rs:162:9 [INFO] [stdout] | [INFO] [stdout] 162 | ordered_dict_iter.advance_by(self.ordered_dict.len()-width); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 162 | let _ = ordered_dict_iter.advance_by(self.ordered_dict.len()-width); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/attack/frequency.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | fn letters(&self) -> linked_hash_map::Keys { [INFO] [stdout] | ^^^^^ -------------------------------- the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 190 | fn letters(&self) -> linked_hash_map::Keys<'_, char, u64> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/attack/frequency.rs:334:9 [INFO] [stdout] | [INFO] [stdout] 334 | ciphered_stream_iter.advance_by(i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 334 | let _ = ciphered_stream_iter.advance_by(i); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `full_loaded_temp_dictionaries` [INFO] [stdout] --> src/bin/main.rs:1211:60 [INFO] [stdout] | [INFO] [stdout] 1211 | fn test_attack_substitution(temp_dir: TestEnvironment, full_loaded_temp_dictionaries: LoadedDictionaries){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_loaded_temp_dictionaries` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_A` should have a snake case name [INFO] [stdout] --> src/cipher/common.rs:186:25 [INFO] [stdout] | [INFO] [stdout] 186 | items.sort_by(|&item_A, &item_B| item_B.1.cmp(item_A.1)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `item_B` should have a snake case name [INFO] [stdout] --> src/cipher/common.rs:186:34 [INFO] [stdout] | [INFO] [stdout] 186 | items.sort_by(|&item_A, &item_B| item_B.1.cmp(item_A.1)); [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `item_b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ciphered_file` [INFO] [stdout] --> src/bin/main.rs:428:13 [INFO] [stdout] | [INFO] [stdout] 428 | ciphered_file, charset } => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try ignoring the field: `ciphered_file: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/cipher/substitution.rs:170:17 [INFO] [stdout] | [INFO] [stdout] 170 | Err(E) => { [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `deciphered_file` [INFO] [stdout] --> src/bin/main.rs:466:32 [INFO] [stdout] | [INFO] [stdout] 466 | file_to_decipher , deciphered_file, charset } => { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try ignoring the field: `deciphered_file: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cipher/substitution.rs:171:32 [INFO] [stdout] | [INFO] [stdout] 171 | assert!(false, format!("Error happened: {}", E)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 171 - assert!(false, format!("Error happened: {}", E)) [INFO] [stdout] 171 + assert!(false, "Error happened: {}", E) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/cipher/substitution.rs:182:17 [INFO] [stdout] | [INFO] [stdout] 182 | Err(E) => { [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `get_string_key_algorithms`, `get_integer_key_algorithms`, and `get_string_value` are never used [INFO] [stdout] --> src/bin/main.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl CipheringAlgorithms { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_string_key_algorithms()-> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn get_integer_key_algorithms()-> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get_string_value(&self)-> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cipher/substitution.rs:183:32 [INFO] [stdout] | [INFO] [stdout] 183 | assert!(false, format!("Error happened: {}", E)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 183 - assert!(false, format!("Error happened: {}", E)) [INFO] [stdout] 183 + assert!(false, "Error happened: {}", E) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `temp_dir`, `languages`, `temp_env`, and `temp_env_var` are never read [INFO] [stdout] --> src/bin/main.rs:860:13 [INFO] [stdout] | [INFO] [stdout] 859 | pub struct LoadedDictionaries { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 860 | pub temp_dir: PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 861 | pub languages: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 862 | temp_env: TestEnvironment, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 863 | temp_env_var: TemporalEnvironmentVariable [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/cipher/substitution.rs:192:20 [INFO] [stdout] | [INFO] [stdout] 192 | if let Err(E) = cipher("", wrong_key, test_charset) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cipher/substitution.rs:195:41 [INFO] [stdout] | [INFO] [stdout] 195 | error => assert!(false, format!("Raised error was not the one \ [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 196 | | we were expecting but {} instead", error)) [INFO] [stdout] | |___________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 195 ~ error => assert!(false, "Raised error was not the one \ [INFO] [stdout] 196 ~ we were expecting but {} instead", error) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `E` should have a snake case name [INFO] [stdout] --> src/cipher/substitution.rs:205:20 [INFO] [stdout] | [INFO] [stdout] 205 | if let Err(E) = cipher("", wrong_key, test_charset) { [INFO] [stdout] | ^ help: convert the identifier to snake case: `e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Str` should have a snake case name [INFO] [stdout] --> src/bin/main.rs:69:19 [INFO] [stdout] | [INFO] [stdout] 69 | .map(|Str| Str.clone()) [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `str` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/cipher/substitution.rs:208:41 [INFO] [stdout] | [INFO] [stdout] 208 | error => assert!(false, format!("Raised error was not the one \ [INFO] [stdout] | _________________________________________^ [INFO] [stdout] 209 | | we were expecting but {} instead", error)) [INFO] [stdout] | |___________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 208 ~ error => assert!(false, "Raised error was not the one \ [INFO] [stdout] 209 ~ we were expecting but {} instead", error) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | languages (id) { [INFO] [stdout] 3 | | id -> Integer, [INFO] [stdout] 4 | | language -> Text, [INFO] [stdout] 5 | | } [INFO] [stdout] 6 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | `table` is not local [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_table` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `algorithm` [INFO] [stdout] --> src/bin/main.rs:521:25 [INFO] [stdout] | [INFO] [stdout] 521 | Modes::Cipher { algorithm, key, file_to_cipher, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `algorithm: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/bin/main.rs:521:36 [INFO] [stdout] | [INFO] [stdout] 521 | Modes::Cipher { algorithm, key, file_to_cipher, [INFO] [stdout] | ^^^ help: try ignoring the field: `key: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_to_cipher` [INFO] [stdout] --> src/bin/main.rs:521:41 [INFO] [stdout] | [INFO] [stdout] 521 | Modes::Cipher { algorithm, key, file_to_cipher, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `file_to_cipher: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/bin/main.rs:522:28 [INFO] [stdout] | [INFO] [stdout] 522 | ciphered_file, charset } => { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `charset: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `algorithm` [INFO] [stdout] --> src/bin/main.rs:525:27 [INFO] [stdout] | [INFO] [stdout] 525 | Modes::Decipher { algorithm, key, file_to_decipher, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `algorithm: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:546:9 [INFO] [stdout] | [INFO] [stdout] 546 | write(output_file_path, output_string.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 546 | let _ = write(output_file_path, output_string.as_str()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/bin/main.rs:525:38 [INFO] [stdout] | [INFO] [stdout] 525 | Modes::Decipher { algorithm, key, file_to_decipher, [INFO] [stdout] | ^^^ help: try ignoring the field: `key: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_to_decipher` [INFO] [stdout] --> src/bin/main.rs:525:43 [INFO] [stdout] | [INFO] [stdout] 525 | Modes::Decipher { algorithm, key, file_to_decipher, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try ignoring the field: `file_to_decipher: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/bin/main.rs:526:30 [INFO] [stdout] | [INFO] [stdout] 526 | deciphered_file, charset }=> { [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `charset: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `algorithm` [INFO] [stdout] --> src/bin/main.rs:529:25 [INFO] [stdout] | [INFO] [stdout] 529 | Modes::Attack { algorithm, file_to_attack, [INFO] [stdout] | ^^^^^^^^^ help: try ignoring the field: `algorithm: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_to_attack` [INFO] [stdout] --> src/bin/main.rs:529:36 [INFO] [stdout] | [INFO] [stdout] 529 | Modes::Attack { algorithm, file_to_attack, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try ignoring the field: `file_to_attack: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `charset` [INFO] [stdout] --> src/bin/main.rs:530:30 [INFO] [stdout] | [INFO] [stdout] 530 | deciphered_file, charset, output_recovered_key [INFO] [stdout] | ^^^^^^^ help: try ignoring the field: `charset: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:767:17 [INFO] [stdout] | [INFO] [stdout] 767 | new_dictionary.populate(pathname); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 767 | let _ = new_dictionary.populate(pathname); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:781:13 [INFO] [stdout] | [INFO] [stdout] 781 | dictionary.populate(pathname); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 781 | let _ = dictionary.populate(pathname); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | languages (id) { [INFO] [stdout] 3 | | id -> Integer, [INFO] [stdout] | | -- `id` is not local [INFO] [stdout] 4 | | language -> Text, [INFO] [stdout] 5 | | } [INFO] [stdout] 6 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Str` should have a snake case name [INFO] [stdout] --> src/bin/main.rs:813:48 [INFO] [stdout] | [INFO] [stdout] 813 | let args_str: Vec<&str> = args.iter().map(|Str| Str.as_str()).collect(); [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:869:13 [INFO] [stdout] | [INFO] [stdout] 869 | database::create_database(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 869 | let _ = database::create_database(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:873:13 [INFO] [stdout] | [INFO] [stdout] 873 | create_dir(&resources_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 873 | let _ = create_dir(&resources_path); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:888:17 [INFO] [stdout] | [INFO] [stdout] 888 | dictionary.populate(language_book); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 888 | let _ = dictionary.populate(language_book); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused return value of `collect` that must be used [INFO] [stdout] --> src/bin/main.rs:891:13 [INFO] [stdout] | [INFO] [stdout] 891 | LANGUAGES.iter().map(|x| _languages.push(x.to_string())).collect::>(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: if you really need to exhaust the iterator, consider `.for_each(drop)` instead [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 891 | let _ = LANGUAGES.iter().map(|x| _languages.push(x.to_string())).collect::>(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | languages (id) { [INFO] [stdout] 3 | | id -> Integer, [INFO] [stdout] 4 | | language -> Text, [INFO] [stdout] | | -------- `language` is not local [INFO] [stdout] 5 | | } [INFO] [stdout] 6 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_language` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output_recovered_key` [INFO] [stdout] --> src/bin/main.rs:563:26 [INFO] [stdout] | [INFO] [stdout] 563 | deciphered_file, output_recovered_key, charset [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `output_recovered_key: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:1103:9 [INFO] [stdout] | [INFO] [stdout] 1103 | write(message_file.path(), CAESAR_ORIGINAL_MESSAGE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1103 | let _ = write(message_file.path(), CAESAR_ORIGINAL_MESSAGE); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:1121:9 [INFO] [stdout] | [INFO] [stdout] 1121 | write(message_file.path(), CAESAR_CIPHERED_MESSAGE_KEY_13); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1121 | let _ = write(message_file.path(), CAESAR_CIPHERED_MESSAGE_KEY_13); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:1139:9 [INFO] [stdout] | [INFO] [stdout] 1139 | write(message_file.path(), SUBSTITUTION_ORIGINAL_MESSAGE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1139 | let _ = write(message_file.path(), SUBSTITUTION_ORIGINAL_MESSAGE); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:1158:9 [INFO] [stdout] | [INFO] [stdout] 1158 | write(message_file.path(), SUBSTITUTION_CIPHERED_MESSAGE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1158 | let _ = write(message_file.path(), SUBSTITUTION_CIPHERED_MESSAGE); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | `table` is not local [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_table` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:1177:9 [INFO] [stdout] | [INFO] [stdout] 1177 | write(message_file.path(), CAESAR_CIPHERED_MESSAGE_KEY_13); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1177 | let _ = write(message_file.path(), CAESAR_CIPHERED_MESSAGE_KEY_13); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:1194:9 [INFO] [stdout] | [INFO] [stdout] 1194 | write(message_file.path(), CAESAR_CIPHERED_MESSAGE_KEY_13); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1194 | let _ = write(message_file.path(), CAESAR_CIPHERED_MESSAGE_KEY_13); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:1221:9 [INFO] [stdout] | [INFO] [stdout] 1221 | write(message_file.path(), ciphered_text); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1221 | let _ = write(message_file.path(), ciphered_text); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] | | -- `id` is not local [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] | | ---- `word` is not local [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_word` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `get_string_key_algorithms`, `get_integer_key_algorithms`, and `get_string_value` are never used [INFO] [stdout] --> src/bin/main.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 43 | impl CipheringAlgorithms { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_string_key_algorithms()-> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn get_integer_key_algorithms()-> HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn get_string_value(&self)-> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Str` should have a snake case name [INFO] [stdout] --> src/bin/main.rs:69:19 [INFO] [stdout] | [INFO] [stdout] 69 | .map(|Str| Str.clone()) [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `str` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] 12 | | word_pattern -> Text, [INFO] [stdout] | | ------------ `word_pattern` is not local [INFO] [stdout] ... | [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_word_pattern` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | / table! { [INFO] [stdout] 9 | | words (id) { [INFO] [stdout] 10 | | id -> Integer, [INFO] [stdout] 11 | | word -> Text, [INFO] [stdout] 12 | | word_pattern -> Text, [INFO] [stdout] 13 | | language_id -> Integer, [INFO] [stdout] | | ----------- `language_id` is not local [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_language_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:546:9 [INFO] [stdout] | [INFO] [stdout] 546 | write(output_file_path, output_string.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 546 | let _ = write(output_file_path, output_string.as_str()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:767:17 [INFO] [stdout] | [INFO] [stdout] 767 | new_dictionary.populate(pathname); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 767 | let _ = new_dictionary.populate(pathname); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/bin/main.rs:781:13 [INFO] [stdout] | [INFO] [stdout] 781 | dictionary.populate(pathname); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 781 | let _ = dictionary.populate(pathname); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Str` should have a snake case name [INFO] [stdout] --> src/bin/main.rs:813:48 [INFO] [stdout] | [INFO] [stdout] 813 | let args_str: Vec<&str> = args.iter().map(|Str| Str.as_str()).collect(); [INFO] [stdout] | ^^^ help: convert the identifier to snake case (notice the capitalization): `str` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.28s [INFO] running `Command { std: "docker" "inspect" "b0fa6baed989fe126b8278b230c11b7c6527c27ead1cf109d9bc9f46373f8719", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b0fa6baed989fe126b8278b230c11b7c6527c27ead1cf109d9bc9f46373f8719", kill_on_drop: false }` [INFO] [stdout] b0fa6baed989fe126b8278b230c11b7c6527c27ead1cf109d9bc9f46373f8719