[INFO] cloning repository https://github.com/edward-lalande/cryptographia [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/edward-lalande/cryptographia" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fedward-lalande%2Fcryptographia", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fedward-lalande%2Fcryptographia'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4e52f5b142aac90f2e858a5a69fb5afa749abfc3 [INFO] linting edward-lalande/cryptographia against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fedward-lalande%2Fcryptographia" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/edward-lalande/cryptographia [INFO] finished tweaking git repo https://github.com/edward-lalande/cryptographia [INFO] tweaked toml for git repo https://github.com/edward-lalande/cryptographia written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/edward-lalande/cryptographia on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/edward-lalande/cryptographia 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 22525d05946c9ca02beea0de0fc33fb14fab17247dd7588a2c3b12bae1516239 [INFO] running `Command { std: "docker" "start" "-a" "22525d05946c9ca02beea0de0fc33fb14fab17247dd7588a2c3b12bae1516239", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "22525d05946c9ca02beea0de0fc33fb14fab17247dd7588a2c3b12bae1516239", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "22525d05946c9ca02beea0de0fc33fb14fab17247dd7588a2c3b12bae1516239", kill_on_drop: false }` [INFO] [stdout] 22525d05946c9ca02beea0de0fc33fb14fab17247dd7588a2c3b12bae1516239 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 45e798a76cbddff0cd947c2a11ef17d030a6d8eb433fc9d197f6e3fdf1712166 [INFO] running `Command { std: "docker" "start" "-a" "45e798a76cbddff0cd947c2a11ef17d030a6d8eb433fc9d197f6e3fdf1712166", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.4.0 (/opt/rustwide/workdir/vendor/autocfg) [INFO] [stderr] Checking hex v0.4.3 (/opt/rustwide/workdir/vendor/hex) [INFO] [stderr] Compiling num-traits v0.2.19 (/opt/rustwide/workdir/vendor/num-traits) [INFO] [stderr] Checking num-integer v0.1.46 (/opt/rustwide/workdir/vendor/num-integer) [INFO] [stderr] Checking num-bigint v0.4.6 (/opt/rustwide/workdir/vendor/num-bigint) [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> vendor/num-bigint/src/biguint/addition.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | unsafe { arch::_addcarry_u64(carry, a, b, out) } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> vendor/num-bigint/src/biguint/subtraction.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | unsafe { arch::_subborrow_u64(borrow, a, b, out) } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking my_pgp v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/message_handling/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod message_handling; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/message_handling/message_handling.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | return line1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 - return line1; [INFO] [stdout] 15 + line1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/message_handling/message_handling.rs:13:47 [INFO] [stdout] | [INFO] [stdout] 13 | let line1 = iterator.next().unwrap_or(Err(Error::new(ErrorKind::Other, ""))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 13 - let line1 = iterator.next().unwrap_or(Err(Error::new(ErrorKind::Other, ""))); [INFO] [stdout] 13 + let line1 = iterator.next().unwrap_or(Err(Error::other(""))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/args_handling/args_struct.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | if (generate && !encrypt && !decrypt) || [INFO] [stdout] | ________^ [INFO] [stdout] 38 | | (!generate && encrypt && !decrypt) { [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 37 - if (generate && !encrypt && !decrypt) || [INFO] [stdout] 38 - (!generate && encrypt && !decrypt) { [INFO] [stdout] 37 + if !(decrypt || generate && encrypt || !generate && !encrypt) { [INFO] [stdout] | [INFO] [stdout] 37 - if (generate && !encrypt && !decrypt) || [INFO] [stdout] 38 - (!generate && encrypt && !decrypt) { [INFO] [stdout] 37 + if (encrypt || generate) && (!encrypt || !generate) && !decrypt { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | fn get_ciphered_to(args: &Vec) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 32 ~ fn get_ciphered_to(args: &[String]) -> Option { [INFO] [stdout] 33 ~ let generate: bool = args.to_owned().iter().find(|&str| str == "-g").is_some(); [INFO] [stdout] 34 ~ let encrypt: bool = args.to_owned().iter().find(|&arg| arg == "-c").is_some(); [INFO] [stdout] 35 ~ let decrypt: bool = args.to_owned().iter().find(|&arg| arg == "-d").is_some(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:48:28 [INFO] [stdout] | [INFO] [stdout] 48 | fn get_symmetric_key(args: &Vec) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 48 - fn get_symmetric_key(args: &Vec) -> Option { [INFO] [stdout] 48 + fn get_symmetric_key(args: &[String]) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:60:29 [INFO] [stdout] | [INFO] [stdout] 60 | fn get_asymmetric_key(args: &Vec, crypto_system: &String) -> Option<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 60 ~ fn get_asymmetric_key(args: &[String], crypto_system: &String) -> Option<(String, String)> { [INFO] [stdout] 61 | let args_size: usize = args.len(); [INFO] [stdout] 62 ~ let cloned_args: Vec = args.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | fn is_stream_mode(args: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 79 - fn is_stream_mode(args: &Vec) -> bool { [INFO] [stdout] 79 + fn is_stream_mode(args: &[String]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/args_handling/args_struct.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 124 | / return Some(ArgsStruct{ [INFO] [stdout] 125 | | crypto_system: crypto_system.clone(), [INFO] [stdout] 126 | | cipherd_to_decipherd: get_ciphered_to(&args)?, [INFO] [stdout] 127 | | asymmetric_key: get_asymmetric_key(&args, &crypto_system), [INFO] [stdout] ... | [INFO] [stdout] 130 | | message: "".to_string() [INFO] [stdout] 131 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 124 ~ Some(ArgsStruct{ [INFO] [stdout] 125 + crypto_system: crypto_system.clone(), [INFO] [stdout] 126 + cipherd_to_decipherd: get_ciphered_to(&args)?, [INFO] [stdout] 127 + asymmetric_key: get_asymmetric_key(&args, &crypto_system), [INFO] [stdout] 128 + symmetric_key: get_symmetric_key(&args), [INFO] [stdout] 129 + stream_mode: is_stream_mode(&args), [INFO] [stdout] 130 + message: "".to_string() [INFO] [stdout] 131 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/xor/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod xor; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/rsa/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod rsa; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/aes/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub mod aes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/aes/aes.rs:14:27 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn switch_endian(val: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 14 - pub fn switch_endian(val: &Vec) -> Vec { [INFO] [stdout] 14 + pub fn switch_endian(val: &[u8]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/aes/aes.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | val.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c|c).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `val.chunks(4).flat_map(|word| word.iter().rev()).into_iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FlatMap, std::iter::Rev>, {closure@src/aes/aes.rs:15:28: 15:34}>` [INFO] [stdout] --> src/aes/aes.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | val.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c|c).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `val.chunks(4).flat_map(|word| word.iter().rev())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/aes.rs:31:40 [INFO] [stdout] | [INFO] [stdout] 31 | print_ciphered_message(&msg, args.stream_mode); [INFO] [stdout] | ^^^^ help: change this to: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | add_round_key(&mut state, &keys, 0); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | add_round_key(&mut state, &keys, 0); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | sub_bytes(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:16:20 [INFO] [stdout] | [INFO] [stdout] 16 | shift_rows(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | mix_columns(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:20:35 [INFO] [stdout] | [INFO] [stdout] 20 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/aes/cipher_message.rs:37:46 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn print_ciphered_message(ciphered_text: &Vec, stream_mode: bool) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 37 - pub fn print_ciphered_message(ciphered_text: &Vec, stream_mode: bool) { [INFO] [stdout] 37 + pub fn print_ciphered_message(ciphered_text: &[u8], stream_mode: bool) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/aes/cipher_message.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let words: Vec = ciphered_text.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c| c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `ciphered_text.chunks(4).flat_map(|word| word.iter().rev()).into_iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FlatMap, std::iter::Rev>, {closure@src/aes/cipher_message.rs:38:59: 38:65}>` [INFO] [stdout] --> src/aes/cipher_message.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let words: Vec = ciphered_text.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c| c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `ciphered_text.chunks(4).flat_map(|word| word.iter().rev())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | add_round_key(&mut state, &keys, nb_rounds - 1); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:15:31 [INFO] [stdout] | [INFO] [stdout] 15 | add_round_key(&mut state, &keys, nb_rounds - 1); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:17:24 [INFO] [stdout] | [INFO] [stdout] 17 | inv_shift_rows(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:18:23 [INFO] [stdout] | [INFO] [stdout] 18 | inv_sub_bytes(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:19:35 [INFO] [stdout] | [INFO] [stdout] 19 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:21:29 [INFO] [stdout] | [INFO] [stdout] 21 | inv_mix_columns(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this manual char comparison can be written more succinctly [INFO] [stdout] --> src/aes/decipher_message.rs:35:79 [INFO] [stdout] | [INFO] [stdout] 35 | Some(String::from_utf8_lossy(deciphered_text.as_slice()).trim_end_matches(|c| c == '\0').to_string()) [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider using a `char`: `'\0'` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison [INFO] [stdout] = note: `#[warn(clippy::manual_pattern_char_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/xor/xor.rs:113:37 [INFO] [stdout] | [INFO] [stdout] 113 | ... message: message }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/xor/xor.rs:129:37 [INFO] [stdout] | [INFO] [stdout] 129 | ... message: message }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/aes/shift_rows.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / for j in 0..key.rows { [INFO] [stdout] 14 | | key[i as usize][j] = row[j]; [INFO] [stdout] 15 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `key[i as usize][..key.rows].copy_from_slice(&row[..key.rows]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/aes/shift_rows.rs:21:27 [INFO] [stdout] | [INFO] [stdout] 21 | let row = [key[i][(0 + i) % 4], key[i][(1 + i) % 4], key[i][(2 + i) % 4], key[i][(3 + i) % 4]]; [INFO] [stdout] | ^^^^^^^ help: consider reducing it to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/aes/shift_rows.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / for j in 0..key.rows { [INFO] [stdout] 23 | | key[i][j] = row[j]; [INFO] [stdout] 24 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `key[i][..key.rows].copy_from_slice(&row[..key.rows]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/aes/mix_columns.rs:51:24 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_mixed_word(col: &mut Vec<&mut u8>, calc_matrix: &Matrix) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - fn get_mixed_word(col: &mut Vec<&mut u8>, calc_matrix: &Matrix) -> [u8; 4] { [INFO] [stdout] 51 + fn get_mixed_word(col: &mut [&mut u8], calc_matrix: &Matrix) -> [u8; 4] { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::slice::Chunks<'_, u8>` [INFO] [stdout] --> src/aes/matrix.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | ... let mut data = src.chunks(shape.1).into_iter().map(|v| {let mut vec = v.to_vec(); vec.resize(shape.1, 0); vec}).collect:: src/aes/matrix.rs:161:33 [INFO] [stdout] | [INFO] [stdout] 161 | pub fn from_matrix_vec(src: &Vec>) -> Matrix { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 161 ~ pub fn from_matrix_vec(src: &[Vec]) -> Matrix { [INFO] [stdout] 162 | Matrix { [INFO] [stdout] 163 | col_size: src[0].len(), [INFO] [stdout] 164 | rows: src.len(), [INFO] [stdout] 165 ~ data: src.to_owned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/aes/matrix.rs:211:24 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn get_col_mut<'a>(&'a mut self, index: usize) -> Option> { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 211 - pub fn get_col_mut<'a>(&'a mut self, index: usize) -> Option> { [INFO] [stdout] 211 + pub fn get_col_mut(&mut self, index: usize) -> Option> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/aes/matrix.rs:309:23 [INFO] [stdout] | [INFO] [stdout] 309 | col_size: self.col_size.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.col_size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/aes/matrix.rs:310:19 [INFO] [stdout] | [INFO] [stdout] 310 | rows: self.rows.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/pgp_aes/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod pgp_aes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/pgp_aes/pgp_aes.rs:11:34 [INFO] [stdout] | [INFO] [stdout] 11 | let tmp = args.symmetric_key.unwrap_or(String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/pgp_xor/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod pgp_xor; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/pgp_xor/pgp_xor.rs:11:34 [INFO] [stdout] | [INFO] [stdout] 11 | let tmp = args.symmetric_key.unwrap_or(String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if cipherd_message(stored_argument) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!cipherd_message(stored_argument)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:93:16 [INFO] [stdout] | [INFO] [stdout] 93 | if cipherd_message(stored_argument) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!cipherd_message(stored_argument)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/message_handling/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod message_handling; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/message_handling/message_handling.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | return line1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 - return line1; [INFO] [stdout] 15 + line1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/message_handling/message_handling.rs:13:47 [INFO] [stdout] | [INFO] [stdout] 13 | let line1 = iterator.next().unwrap_or(Err(Error::new(ErrorKind::Other, ""))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 13 - let line1 = iterator.next().unwrap_or(Err(Error::new(ErrorKind::Other, ""))); [INFO] [stdout] 13 + let line1 = iterator.next().unwrap_or(Err(Error::other(""))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/args_handling/args_struct.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | if (generate && !encrypt && !decrypt) || [INFO] [stdout] | ________^ [INFO] [stdout] 38 | | (!generate && encrypt && !decrypt) { [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 37 - if (generate && !encrypt && !decrypt) || [INFO] [stdout] 38 - (!generate && encrypt && !decrypt) { [INFO] [stdout] 37 + if !(decrypt || generate && encrypt || !generate && !encrypt) { [INFO] [stdout] | [INFO] [stdout] 37 - if (generate && !encrypt && !decrypt) || [INFO] [stdout] 38 - (!generate && encrypt && !decrypt) { [INFO] [stdout] 37 + if (encrypt || generate) && (!encrypt || !generate) && !decrypt { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:32:26 [INFO] [stdout] | [INFO] [stdout] 32 | fn get_ciphered_to(args: &Vec) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 32 ~ fn get_ciphered_to(args: &[String]) -> Option { [INFO] [stdout] 33 ~ let generate: bool = args.to_owned().iter().find(|&str| str == "-g").is_some(); [INFO] [stdout] 34 ~ let encrypt: bool = args.to_owned().iter().find(|&arg| arg == "-c").is_some(); [INFO] [stdout] 35 ~ let decrypt: bool = args.to_owned().iter().find(|&arg| arg == "-d").is_some(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:48:28 [INFO] [stdout] | [INFO] [stdout] 48 | fn get_symmetric_key(args: &Vec) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 48 - fn get_symmetric_key(args: &Vec) -> Option { [INFO] [stdout] 48 + fn get_symmetric_key(args: &[String]) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:60:29 [INFO] [stdout] | [INFO] [stdout] 60 | fn get_asymmetric_key(args: &Vec, crypto_system: &String) -> Option<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 60 ~ fn get_asymmetric_key(args: &[String], crypto_system: &String) -> Option<(String, String)> { [INFO] [stdout] 61 | let args_size: usize = args.len(); [INFO] [stdout] 62 ~ let cloned_args: Vec = args.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/args_handling/args_struct.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | fn is_stream_mode(args: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 79 - fn is_stream_mode(args: &Vec) -> bool { [INFO] [stdout] 79 + fn is_stream_mode(args: &[String]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/args_handling/args_struct.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 124 | / return Some(ArgsStruct{ [INFO] [stdout] 125 | | crypto_system: crypto_system.clone(), [INFO] [stdout] 126 | | cipherd_to_decipherd: get_ciphered_to(&args)?, [INFO] [stdout] 127 | | asymmetric_key: get_asymmetric_key(&args, &crypto_system), [INFO] [stdout] ... | [INFO] [stdout] 130 | | message: "".to_string() [INFO] [stdout] 131 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 124 ~ Some(ArgsStruct{ [INFO] [stdout] 125 + crypto_system: crypto_system.clone(), [INFO] [stdout] 126 + cipherd_to_decipherd: get_ciphered_to(&args)?, [INFO] [stdout] 127 + asymmetric_key: get_asymmetric_key(&args, &crypto_system), [INFO] [stdout] 128 + symmetric_key: get_symmetric_key(&args), [INFO] [stdout] 129 + stream_mode: is_stream_mode(&args), [INFO] [stdout] 130 + message: "".to_string() [INFO] [stdout] 131 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/xor/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod xor; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/rsa/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod rsa; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/aes/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub mod aes; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/aes/aes.rs:14:27 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn switch_endian(val: &Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 14 - pub fn switch_endian(val: &Vec) -> Vec { [INFO] [stdout] 14 + pub fn switch_endian(val: &[u8]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/aes/aes.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | val.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c|c).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `val.chunks(4).flat_map(|word| word.iter().rev()).into_iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FlatMap, std::iter::Rev>, {closure@src/aes/aes.rs:15:28: 15:34}>` [INFO] [stdout] --> src/aes/aes.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | val.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c|c).collect() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `val.chunks(4).flat_map(|word| word.iter().rev())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/aes.rs:31:40 [INFO] [stdout] | [INFO] [stdout] 31 | print_ciphered_message(&msg, args.stream_mode); [INFO] [stdout] | ^^^^ help: change this to: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | add_round_key(&mut state, &keys, 0); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:13:31 [INFO] [stdout] | [INFO] [stdout] 13 | add_round_key(&mut state, &keys, 0); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | sub_bytes(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:16:20 [INFO] [stdout] | [INFO] [stdout] 16 | shift_rows(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | mix_columns(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:20:23 [INFO] [stdout] | [INFO] [stdout] 20 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/cipher_message.rs:20:35 [INFO] [stdout] | [INFO] [stdout] 20 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/aes/cipher_message.rs:37:46 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn print_ciphered_message(ciphered_text: &Vec, stream_mode: bool) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 37 - pub fn print_ciphered_message(ciphered_text: &Vec, stream_mode: bool) { [INFO] [stdout] 37 + pub fn print_ciphered_message(ciphered_text: &[u8], stream_mode: bool) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/aes/cipher_message.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let words: Vec = ciphered_text.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c| c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `ciphered_text.chunks(4).flat_map(|word| word.iter().rev()).into_iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FlatMap, std::iter::Rev>, {closure@src/aes/cipher_message.rs:38:59: 38:65}>` [INFO] [stdout] --> src/aes/cipher_message.rs:38:26 [INFO] [stdout] | [INFO] [stdout] 38 | let words: Vec = ciphered_text.chunks(4).flat_map(|word| word.iter().rev()).into_iter().map(|&c| c).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `ciphered_text.chunks(4).flat_map(|word| word.iter().rev())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | add_round_key(&mut state, &keys, nb_rounds - 1); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:15:31 [INFO] [stdout] | [INFO] [stdout] 15 | add_round_key(&mut state, &keys, nb_rounds - 1); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:17:24 [INFO] [stdout] | [INFO] [stdout] 17 | inv_shift_rows(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:18:23 [INFO] [stdout] | [INFO] [stdout] 18 | inv_sub_bytes(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:19:23 [INFO] [stdout] | [INFO] [stdout] 19 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:19:35 [INFO] [stdout] | [INFO] [stdout] 19 | add_round_key(&mut state, &keys, round); [INFO] [stdout] | ^^^^^ help: change this to: `keys` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/aes/decipher_message.rs:21:29 [INFO] [stdout] | [INFO] [stdout] 21 | inv_mix_columns(&mut state); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this manual char comparison can be written more succinctly [INFO] [stdout] --> src/aes/decipher_message.rs:35:79 [INFO] [stdout] | [INFO] [stdout] 35 | Some(String::from_utf8_lossy(deciphered_text.as_slice()).trim_end_matches(|c| c == '\0').to_string()) [INFO] [stdout] | ^^^^^^^^^^^^^ help: consider using a `char`: `'\0'` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison [INFO] [stdout] = note: `#[warn(clippy::manual_pattern_char_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/aes/shift_rows.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / for j in 0..key.rows { [INFO] [stdout] 14 | | key[i as usize][j] = row[j]; [INFO] [stdout] 15 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `key[i as usize][..key.rows].copy_from_slice(&row[..key.rows]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] = note: `#[warn(clippy::manual_memcpy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/aes/shift_rows.rs:21:27 [INFO] [stdout] | [INFO] [stdout] 21 | let row = [key[i][(0 + i) % 4], key[i][(1 + i) % 4], key[i][(2 + i) % 4], key[i][(3 + i) % 4]]; [INFO] [stdout] | ^^^^^^^ help: consider reducing it to: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it looks like you're manually copying between slices [INFO] [stdout] --> src/aes/shift_rows.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / for j in 0..key.rows { [INFO] [stdout] 23 | | key[i][j] = row[j]; [INFO] [stdout] 24 | | } [INFO] [stdout] | |_________^ help: try replacing the loop by: `key[i][..key.rows].copy_from_slice(&row[..key.rows]);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/aes/mix_columns.rs:51:24 [INFO] [stdout] | [INFO] [stdout] 51 | fn get_mixed_word(col: &mut Vec<&mut u8>, calc_matrix: &Matrix) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 51 - fn get_mixed_word(col: &mut Vec<&mut u8>, calc_matrix: &Matrix) -> [u8; 4] { [INFO] [stdout] 51 + fn get_mixed_word(col: &mut [&mut u8], calc_matrix: &Matrix) -> [u8; 4] { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::slice::Chunks<'_, u8>` [INFO] [stdout] --> src/aes/matrix.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | ... let mut data = src.chunks(shape.1).into_iter().map(|v| {let mut vec = v.to_vec(); vec.resize(shape.1, 0); vec}).collect:: src/aes/matrix.rs:161:33 [INFO] [stdout] | [INFO] [stdout] 161 | pub fn from_matrix_vec(src: &Vec>) -> Matrix { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 161 ~ pub fn from_matrix_vec(src: &[Vec]) -> Matrix { [INFO] [stdout] 162 | Matrix { [INFO] [stdout] 163 | col_size: src[0].len(), [INFO] [stdout] 164 | rows: src.len(), [INFO] [stdout] 165 ~ data: src.to_owned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/aes/matrix.rs:211:24 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn get_col_mut<'a>(&'a mut self, index: usize) -> Option> { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 211 - pub fn get_col_mut<'a>(&'a mut self, index: usize) -> Option> { [INFO] [stdout] 211 + pub fn get_col_mut(&mut self, index: usize) -> Option> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/aes/matrix.rs:309:23 [INFO] [stdout] | [INFO] [stdout] 309 | col_size: self.col_size.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.col_size` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/aes/matrix.rs:310:19 [INFO] [stdout] | [INFO] [stdout] 310 | rows: self.rows.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rows` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/pgp_aes/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod pgp_aes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/pgp_aes/pgp_aes.rs:11:34 [INFO] [stdout] | [INFO] [stdout] 11 | let tmp = args.symmetric_key.unwrap_or(String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/pgp_xor/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | pub mod pgp_xor; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/pgp_xor/pgp_xor.rs:11:34 [INFO] [stdout] | [INFO] [stdout] 11 | let tmp = args.symmetric_key.unwrap_or(String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if cipherd_message(stored_argument) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!cipherd_message(stored_argument)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:93:16 [INFO] [stdout] | [INFO] [stdout] 93 | if cipherd_message(stored_argument) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!cipherd_message(stored_argument)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.77s [INFO] running `Command { std: "docker" "inspect" "45e798a76cbddff0cd947c2a11ef17d030a6d8eb433fc9d197f6e3fdf1712166", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45e798a76cbddff0cd947c2a11ef17d030a6d8eb433fc9d197f6e3fdf1712166", kill_on_drop: false }` [INFO] [stdout] 45e798a76cbddff0cd947c2a11ef17d030a6d8eb433fc9d197f6e3fdf1712166