[INFO] cloning repository https://github.com/terrarier2111/Algorithms [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/terrarier2111/Algorithms" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fterrarier2111%2FAlgorithms", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fterrarier2111%2FAlgorithms'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d0f07ca3cedcc3a3ddd8e23b9dff325499b37ead [INFO] testing terrarier2111/Algorithms against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fterrarier2111%2FAlgorithms" "/workspace/builds/worker-27/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-27/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/terrarier2111/Algorithms on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/terrarier2111/Algorithms [INFO] finished tweaking git repo https://github.com/terrarier2111/Algorithms [INFO] tweaked toml for git repo https://github.com/terrarier2111/Algorithms written to /workspace/builds/worker-27/source/Cargo.toml [INFO] crate git repo https://github.com/terrarier2111/Algorithms already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2eeb072fa393392964fe8a6c289a06e54a0f633cae6ddaeef2332ba8aa2b69c5 [INFO] running `Command { std: "docker" "start" "-a" "2eeb072fa393392964fe8a6c289a06e54a0f633cae6ddaeef2332ba8aa2b69c5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2eeb072fa393392964fe8a6c289a06e54a0f633cae6ddaeef2332ba8aa2b69c5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2eeb072fa393392964fe8a6c289a06e54a0f633cae6ddaeef2332ba8aa2b69c5", kill_on_drop: false }` [INFO] [stdout] 2eeb072fa393392964fe8a6c289a06e54a0f633cae6ddaeef2332ba8aa2b69c5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9145960f6a473ca472e1b461cebefd85e5884596c619ee9b5534ea9665865d3c [INFO] running `Command { std: "docker" "start" "-a" "9145960f6a473ca472e1b461cebefd85e5884596c619ee9b5534ea9665865d3c", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling rust_test v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:32:94 [INFO] [stdout] | [INFO] [stdout] 32 | let key_offsets: Vec = key.as_bytes().iter().map(|x| (x & CHAR_MASK) - 1).collect(); /// Calculate the offset on one side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | let key_offsets = key_offsets.as_slice(); [INFO] [stdout] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:36:50 [INFO] [stdout] | [INFO] [stdout] 36 | let char_offset = (x.1 & CHAR_MASK) - 1; /// Calculate the offset on the other side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | let result = result_fn(char_offset, key_offset); [INFO] [stdout] | ------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/break_encrypt/caesar.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug`, `Display`, `Formatter` [INFO] [stdout] --> src/break_encrypt/caesar.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{Debug, Display, Formatter}; [INFO] [stdout] | ^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::encrypt::encrypt_caesar` [INFO] [stdout] --> src/break_encrypt/caesar.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::encrypt::encrypt_caesar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | for x in 0..26 { /// Iterate over the number of letters in the alphabet and check for every possible shift [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | decrypt(inpt, buffer, x); [INFO] [stdout] | ------------------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:20:40 [INFO] [stdout] | [INFO] [stdout] 20 | if buffer == expected_result { /// Compare the result with the expected result [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 21 | | /// we could also add this to a list which we could return later [INFO] [stdout] 22 | | /// and which contains all possible permutations. [INFO] [stdout] | |________________________________________________________________________________________^ [INFO] [stdout] 23 | return Ok(x); [INFO] [stdout] | ------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | /// This means that we didn't find the expected result here! [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | / return Err(BreakError { [INFO] [stdout] 28 | | msg: "".to_string() [INFO] [stdout] 29 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | for x in range { /// Iterate over the given range and check for every possible shift [INFO] [stdout] | ______________________^ [INFO] [stdout] 46 | | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 47 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/search/binary.rs:1:62 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn search(container: &[usize], target: usize) -> usize { /// returns a position [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 2 | let mut curr_pos = container.len() / 2; [INFO] [stdout] | --------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::Iter` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::slice::Iter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::hash_map::Values` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::hash_map::Values; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | let mut vec = buckets.get_mut(char_as_num(str_ver.chars().nth(str_ver.len() - 1).unwrap()) as usize).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: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | let mut vec = result.get_mut(char_as_num(str_ver.chars().nth(str_ver.len() - 1 - i).unwrap_or('0')) as usize).unwrap(); [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/encrypt/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut out = unsafe { out.as_bytes_mut() }; [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/encrypt/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut out = unsafe { out.as_bytes_mut() }; [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/encrypt/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut out = unsafe { out.as_bytes_mut() }; [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/encrypt/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encrypt_caesar` [INFO] [stdout] --> src/encrypt/mod.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn encrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `decrypt_caesar` [INFO] [stdout] --> src/encrypt/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn decrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `sort` [INFO] [stdout] --> src/sorting/bubble.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [i32]) -> Box<&[i32]> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MASK` [INFO] [stdout] --> src/encrypt/ceasar.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | const MASK: u8 = !((1 << 5) | (1 << 6) | (1 << 7)); // TODO: Use this! [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encrypt` [INFO] [stdout] --> src/encrypt/ceasar.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn encrypt(input: &[u8], output: &mut [u8], shift_num: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `shift` [INFO] [stdout] --> src/encrypt/ceasar.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn shift(x: u8, offset: u8) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `break_caesar` [INFO] [stdout] --> src/break_encrypt/caesar.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn break_caesar(input: &str, expected: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 30 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.23s [INFO] running `Command { std: "docker" "inspect" "9145960f6a473ca472e1b461cebefd85e5884596c619ee9b5534ea9665865d3c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9145960f6a473ca472e1b461cebefd85e5884596c619ee9b5534ea9665865d3c", kill_on_drop: false }` [INFO] [stdout] 9145960f6a473ca472e1b461cebefd85e5884596c619ee9b5534ea9665865d3c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5df8cec7688dd0e4ba2b54fb6beeed306c7ec2226028917fd14cb6ca497a032a [INFO] running `Command { std: "docker" "start" "-a" "5df8cec7688dd0e4ba2b54fb6beeed306c7ec2226028917fd14cb6ca497a032a", kill_on_drop: false }` [INFO] [stderr] Compiling rust_test v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:32:94 [INFO] [stdout] | [INFO] [stdout] 32 | let key_offsets: Vec = key.as_bytes().iter().map(|x| (x & CHAR_MASK) - 1).collect(); /// Calculate the offset on one side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | let key_offsets = key_offsets.as_slice(); [INFO] [stdout] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:36:50 [INFO] [stdout] | [INFO] [stdout] 36 | let char_offset = (x.1 & CHAR_MASK) - 1; /// Calculate the offset on the other side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | let result = result_fn(char_offset, key_offset); [INFO] [stdout] | ------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/break_encrypt/caesar.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug`, `Display`, `Formatter` [INFO] [stdout] --> src/break_encrypt/caesar.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{Debug, Display, Formatter}; [INFO] [stdout] | ^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::encrypt::encrypt_caesar` [INFO] [stdout] --> src/break_encrypt/caesar.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::encrypt::encrypt_caesar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | for x in 0..26 { /// Iterate over the number of letters in the alphabet and check for every possible shift [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | decrypt(inpt, buffer, x); [INFO] [stdout] | ------------------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:20:40 [INFO] [stdout] | [INFO] [stdout] 20 | if buffer == expected_result { /// Compare the result with the expected result [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 21 | | /// we could also add this to a list which we could return later [INFO] [stdout] 22 | | /// and which contains all possible permutations. [INFO] [stdout] | |________________________________________________________________________________________^ [INFO] [stdout] 23 | return Ok(x); [INFO] [stdout] | ------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | /// This means that we didn't find the expected result here! [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | / return Err(BreakError { [INFO] [stdout] 28 | | msg: "".to_string() [INFO] [stdout] 29 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | for x in range { /// Iterate over the given range and check for every possible shift [INFO] [stdout] | ______________________^ [INFO] [stdout] 46 | | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 47 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/search/binary.rs:1:62 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn search(container: &[usize], target: usize) -> usize { /// returns a position [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 2 | let mut curr_pos = container.len() / 2; [INFO] [stdout] | --------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::Iter` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::slice::Iter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::hash_map::Values` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::hash_map::Values; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | let mut vec = buckets.get_mut(char_as_num(str_ver.chars().nth(str_ver.len() - 1).unwrap()) as usize).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: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | let mut vec = result.get_mut(char_as_num(str_ver.chars().nth(str_ver.len() - 1 - i).unwrap_or('0')) as usize).unwrap(); [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/encrypt/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut out = unsafe { out.as_bytes_mut() }; [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/encrypt/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut out = unsafe { out.as_bytes_mut() }; [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/encrypt/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut out = unsafe { out.as_bytes_mut() }; [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/encrypt/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encrypt_caesar` [INFO] [stdout] --> src/encrypt/mod.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn encrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `decrypt_caesar` [INFO] [stdout] --> src/encrypt/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn decrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `sort` [INFO] [stdout] --> src/sorting/bubble.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [i32]) -> Box<&[i32]> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MASK` [INFO] [stdout] --> src/encrypt/ceasar.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | const MASK: u8 = !((1 << 5) | (1 << 6) | (1 << 7)); // TODO: Use this! [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encrypt` [INFO] [stdout] --> src/encrypt/ceasar.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn encrypt(input: &[u8], output: &mut [u8], shift_num: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `shift` [INFO] [stdout] --> src/encrypt/ceasar.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn shift(x: u8, offset: u8) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `break_caesar` [INFO] [stdout] --> src/break_encrypt/caesar.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn break_caesar(input: &str, expected: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 30 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.31s [INFO] running `Command { std: "docker" "inspect" "5df8cec7688dd0e4ba2b54fb6beeed306c7ec2226028917fd14cb6ca497a032a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5df8cec7688dd0e4ba2b54fb6beeed306c7ec2226028917fd14cb6ca497a032a", kill_on_drop: false }` [INFO] [stdout] 5df8cec7688dd0e4ba2b54fb6beeed306c7ec2226028917fd14cb6ca497a032a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-27/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 592a83aee75b543bbb11d9371c42f824dd57d93a3abcec61b7949c28c9b6191c [INFO] running `Command { std: "docker" "start" "-a" "592a83aee75b543bbb11d9371c42f824dd57d93a3abcec61b7949c28c9b6191c", kill_on_drop: false }` [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/encrypt/polyalphabet.rs:32:94 [INFO] [stderr] | [INFO] [stderr] 32 | let key_offsets: Vec = key.as_bytes().iter().map(|x| (x & CHAR_MASK) - 1).collect(); /// Calculate the offset on one side of the table [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 33 | let key_offsets = key_offsets.as_slice(); [INFO] [stderr] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/encrypt/polyalphabet.rs:36:50 [INFO] [stderr] | [INFO] [stderr] 36 | let char_offset = (x.1 & CHAR_MASK) - 1; /// Calculate the offset on the other side of the table [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 37 | let result = result_fn(char_offset, key_offset); [INFO] [stderr] | ------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error::Error` [INFO] [stderr] --> src/break_encrypt/caesar.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::error::Error; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Debug`, `Display`, `Formatter` [INFO] [stderr] --> src/break_encrypt/caesar.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fmt::{Debug, Display, Formatter}; [INFO] [stderr] | ^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::encrypt::encrypt_caesar` [INFO] [stderr] --> src/break_encrypt/caesar.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::encrypt::encrypt_caesar; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/break_encrypt/caesar.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | /// Create a buffer to which we write our cipher output later. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 15 | let mut buffer = input.to_string(); [INFO] [stderr] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/break_encrypt/caesar.rs:18:22 [INFO] [stderr] | [INFO] [stderr] 18 | for x in 0..26 { /// Iterate over the number of letters in the alphabet and check for every possible shift [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 19 | decrypt(inpt, buffer, x); [INFO] [stderr] | ------------------------ rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/break_encrypt/caesar.rs:20:40 [INFO] [stderr] | [INFO] [stderr] 20 | if buffer == expected_result { /// Compare the result with the expected result [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 21 | | /// we could also add this to a list which we could return later [INFO] [stderr] 22 | | /// and which contains all possible permutations. [INFO] [stderr] | |________________________________________________________________________________________^ [INFO] [stderr] 23 | return Ok(x); [INFO] [stderr] | ------------ rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/break_encrypt/caesar.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | /// This means that we didn't find the expected result here! [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 27 | / return Err(BreakError { [INFO] [stderr] 28 | | msg: "".to_string() [INFO] [stderr] 29 | | }); [INFO] [stderr] | |______- rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/break_encrypt/caesar.rs:45:22 [INFO] [stderr] | [INFO] [stderr] 45 | for x in range { /// Iterate over the given range and check for every possible shift [INFO] [stderr] | ______________________^ [INFO] [stderr] 46 | | /// Create a buffer to which we write our cipher output later. [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] 47 | let mut buffer = input.to_string(); [INFO] [stderr] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/search/binary.rs:1:62 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn search(container: &[usize], target: usize) -> usize { /// returns a position [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 2 | let mut curr_pos = container.len() / 2; [INFO] [stderr] | --------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = help: use `//` for a plain comment [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::slice::Iter` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::slice::Iter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::hash_map::Values` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::collections::hash_map::Values; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::convert::TryInto` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::convert::TryInto; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/sorting/radix.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | let mut vec = buckets.get_mut(char_as_num(str_ver.chars().nth(str_ver.len() - 1).unwrap()) as usize).unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/sorting/radix.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | let mut vec = result.get_mut(char_as_num(str_ver.chars().nth(str_ver.len() - 1 - i).unwrap_or('0')) as usize).unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/encrypt/mod.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/encrypt/mod.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/encrypt/mod.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/encrypt/mod.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/util/mod.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | unsafe { input.as_bytes() } [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/util/mod.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | unsafe { input.as_bytes() } [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: function is never used: `encrypt_caesar` [INFO] [stderr] --> src/encrypt/mod.rs:4:8 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn encrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `decrypt_caesar` [INFO] [stderr] --> src/encrypt/mod.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn decrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sort` [INFO] [stderr] --> src/sorting/bubble.rs:1:8 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn sort(src: &mut [i32]) -> Box<&[i32]> { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `MASK` [INFO] [stderr] --> src/encrypt/ceasar.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | const MASK: u8 = !((1 << 5) | (1 << 6) | (1 << 7)); // TODO: Use this! [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `encrypt` [INFO] [stderr] --> src/encrypt/ceasar.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn encrypt(input: &[u8], output: &mut [u8], shift_num: u8) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `shift` [INFO] [stderr] --> src/encrypt/ceasar.rs:23:4 [INFO] [stderr] | [INFO] [stderr] 23 | fn shift(x: u8, offset: u8) -> u8 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `break_caesar` [INFO] [stderr] --> src/break_encrypt/caesar.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn break_caesar(input: &str, expected: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `rust_test` (bin "rust_test" test) generated 30 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.01s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/rust_test-6338ceb8e978bc54) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "592a83aee75b543bbb11d9371c42f824dd57d93a3abcec61b7949c28c9b6191c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "592a83aee75b543bbb11d9371c42f824dd57d93a3abcec61b7949c28c9b6191c", kill_on_drop: false }` [INFO] [stdout] 592a83aee75b543bbb11d9371c42f824dd57d93a3abcec61b7949c28c9b6191c