[INFO] cloning repository https://github.com/ganesh1997oli/pba-group-assignment-2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ganesh1997oli/pba-group-assignment-2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fganesh1997oli%2Fpba-group-assignment-2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fganesh1997oli%2Fpba-group-assignment-2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 13c305cb398e7cb9673187d37f6134876f8a9be3
[INFO] checking ganesh1997oli/pba-group-assignment-2 against f4dd856795debe636f2ba39a900f162f5abeb7e8 for pr-160904
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fganesh1997oli%2Fpba-group-assignment-2" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ganesh1997oli/pba-group-assignment-2
[INFO] finished tweaking git repo https://github.com/ganesh1997oli/pba-group-assignment-2
[INFO] tweaked toml for git repo https://github.com/ganesh1997oli/pba-group-assignment-2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ganesh1997oli/pba-group-assignment-2 on toolchain f4dd856795debe636f2ba39a900f162f5abeb7e8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ganesh1997oli/pba-group-assignment-2 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" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8
[INFO] running `Command { std: "docker" "start" "d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8" "/opt/rustwide/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8" "/opt/rustwide/cargo-home/bin/cargo" "+f4dd856795debe636f2ba39a900f162f5abeb7e8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking inout v0.1.3
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking group-assignment-2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0425]: cannot find value `padded_groups` in this scope
[INFO] [stdout]    --> src/main.rs:195:31
[INFO] [stdout]     |
[INFO] [stdout] 195 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `padded_groups` in this scope
[INFO] [stdout]    --> src/main.rs:197:31
[INFO] [stdout]     |
[INFO] [stdout] 197 |             xored_block = xor(padded_groups[i], encrypted_groups[i - 1]);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot find value `u8` in this scope
[INFO] [stdout]    --> src/main.rs:224:18
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let nonce = [u8; BLOCK_SIZE];
[INFO] [stdout]     |                  ^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout]     = note: a builtin type named `u8` exists in another namespace
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockCipher` and `Key`
[INFO] [stdout]   --> src/main.rs:17:43
[INFO] [stdout]    |
[INFO] [stdout] 17 |     cipher::{generic_array::GenericArray, BlockCipher, BlockDecrypt, BlockEncrypt, Key, KeyInit},
[INFO] [stdout]    |                                           ^^^^^^^^^^^                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:113:31
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for i in size - 1..size - last_digit {
[INFO] [stdout]     |                               ^^^^^^^^^^ expected `usize`, found `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot subtract `&u8` from `usize`
[INFO] [stdout]    --> src/main.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for i in size - 1..size - last_digit {
[INFO] [stdout]     |                             ^ no implementation for `usize - &u8`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sub<&u8>` is not implemented for `usize`
[INFO] [stdout] help: the following other types implement trait `Sub<Rhs>`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub<usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:33:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub<&usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:44:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:225:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `forward_ref_binop` which comes from the expansion of the macro `sub_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `padded_groups` in this scope
[INFO] [stdout]    --> src/main.rs:195:31
[INFO] [stdout]     |
[INFO] [stdout] 195 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `padded_groups` in this scope
[INFO] [stdout]    --> src/main.rs:197:31
[INFO] [stdout]     |
[INFO] [stdout] 197 |             xored_block = xor(padded_groups[i], encrypted_groups[i - 1]);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: cannot find value `u8` in this scope
[INFO] [stdout]    --> src/main.rs:224:18
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let nonce = [u8; BLOCK_SIZE];
[INFO] [stdout]     |                  ^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout]     = note: a builtin type named `u8` exists in another namespace
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockCipher` and `Key`
[INFO] [stdout]   --> src/main.rs:17:43
[INFO] [stdout]    |
[INFO] [stdout] 17 |     cipher::{generic_array::GenericArray, BlockCipher, BlockDecrypt, BlockEncrypt, Key, KeyInit},
[INFO] [stdout]    |                                           ^^^^^^^^^^^                              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:114:23
[INFO] [stdout]     |
[INFO] [stdout] 114 |         if data[i] != last_digit {
[INFO] [stdout]     |            -------    ^^^^^^^^^^ expected `u8`, found `&u8`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            expected because this is `u8`
[INFO] [stdout]     |
[INFO] [stdout] help: consider dereferencing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 114 |         if data[i] != *last_digit {
[INFO] [stdout]     |                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:120:37
[INFO] [stdout]     |
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                                     ^^^^^^^^^^ expected `usize`, found `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot subtract `&u8` from `usize`
[INFO] [stdout]    --> src/main.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                                   ^ no implementation for `usize - &u8`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sub<&u8>` is not implemented for `usize`
[INFO] [stdout] help: the following other types implement trait `Sub<Rhs>`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub<usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:33:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub<&usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:44:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:225:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `forward_ref_binop` which comes from the expansion of the macro `sub_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn un_pad(data: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |                             ------- expected `Vec<u8>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] note: method `truncate` modifies its receiver in-place
[INFO] [stdout]    --> src/main.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                ---- ^^^^^^^^ this call modifies `data` in-place
[INFO] [stdout]     |                |
[INFO] [stdout]     |                you probably want to use this value after calling the method...
[INFO] [stdout]     = note: ...instead of the `()` output of method `truncate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let padded_groups = un_group(un_pad(cipher_text));
[INFO] [stdout]     |                         -------- ^^^^^^^^^^^^^^^^^^^ expected `Vec<[u8; 16]>`, found `Vec<u8>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<[u8; 16]>`
[INFO] [stdout]                found struct `Vec<u8>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:99:4
[INFO] [stdout]     |
[INFO] [stdout]  99 | fn un_group(blocks: Vec<[u8; BLOCK_SIZE]>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^ -----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:147:43
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let decrypted_block = aes_decrypt(block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^ expected `[u8; 16]`, found `u8`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:44:4
[INFO] [stdout]     |
[INFO] [stdout]  44 | fn aes_decrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     zip(a, b).map(|(x, y)| x ^ y).collect::<Vec<u8>>()
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `Vec<u8>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 154 |     zip(a, b).map(|(x, y)| x ^ y).collect::<Vec<u8>>();
[INFO] [stdout]     |                                                       +
[INFO] [stdout] help: try adding a return type
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |                                ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:113:31
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for i in size - 1..size - last_digit {
[INFO] [stdout]     |                               ^^^^^^^^^^ expected `usize`, found `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:173:27
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = KeyInit::new(8);
[INFO] [stdout]     |              ------------ ^ expected `&GenericArray<u8, _>`, found integer
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&GenericArray<u8, _>`
[INFO] [stdout]                     found type `{integer}`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.6/src/lib.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn new(key: &Key<Self>) -> Self;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Vec<_>: KeyInit` is not satisfied
[INFO] [stdout]    --> src/main.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = KeyInit::new(8);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^ the trait `KeyInit` is not implemented for `&mut Vec<_>`
[INFO] [stdout]     |
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = &mut KeyInit::new(8);
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:179:31
[INFO] [stdout]     |
[INFO] [stdout] 179 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                           --- ^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 179 |             xored_block = xor(padded_groups[i].to_vec(), cipher_text[0]);
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |             xored_block = xor(padded_groups[i], cipher_text[i - 1]);
[INFO] [stdout]     |                           --- ^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 181 |             xored_block = xor(padded_groups[i].to_vec(), cipher_text[i - 1]);
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let encrypted_block = aes_encrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:30:4
[INFO] [stdout]     |
[INFO] [stdout]  30 | fn aes_encrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot subtract `&u8` from `usize`
[INFO] [stdout]    --> src/main.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |     for i in size - 1..size - last_digit {
[INFO] [stdout]     |                             ^ no implementation for `usize - &u8`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sub<&u8>` is not implemented for `usize`
[INFO] [stdout] help: the following other types implement trait `Sub<Rhs>`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub<usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:33:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub<&usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:44:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:225:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `forward_ref_binop` which comes from the expansion of the macro `sub_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:184:39
[INFO] [stdout]     |
[INFO] [stdout] 184 |         cipher_text.extend_from_slice(&encrypted_block);
[INFO] [stdout]     |                     ----------------- ^^^^^^^^^^^^^^^^ expected `&[Vec<u8>]`, found `&[u8; 16]`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&[Vec<u8>]`
[INFO] [stdout]                found reference `&[u8; 16]`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/alloc/src/vec/mod.rs:3643:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn cbc_encrypt(plain_text: Vec<u8>, key: [u8; BLOCK_SIZE]) -> Vec<u8> {
[INFO] [stdout]     |                                                               ------- expected `Vec<u8>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 179 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                                                 ----------- here the type of `cipher_text` is inferred to be `Vec<Vec<u8>>`
[INFO] [stdout] ...
[INFO] [stdout] 186 |     cipher_text
[INFO] [stdout]     |     ^^^^^^^^^^^ expected `Vec<u8>`, found `Vec<Vec<u8>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                found struct `Vec<Vec<u8>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:114:23
[INFO] [stdout]     |
[INFO] [stdout] 114 |         if data[i] != last_digit {
[INFO] [stdout]     |            -------    ^^^^^^^^^^ expected `u8`, found `&u8`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            expected because this is `u8`
[INFO] [stdout]     |
[INFO] [stdout] help: consider dereferencing the borrow
[INFO] [stdout]     |
[INFO] [stdout] 114 |         if data[i] != *last_digit {
[INFO] [stdout]     |                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Vec<Vec<u8>>: KeySizeUser` is not satisfied
[INFO] [stdout]    --> src/main.rs:173:27
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = KeyInit::new(8);
[INFO] [stdout]     |                           ^ the trait `KeySizeUser` is not implemented for `&mut Vec<Vec<u8>>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `KeySizeUser`:
[INFO] [stdout]               Aes128
[INFO] [stdout]               Aes128Dec
[INFO] [stdout]               Aes128Enc
[INFO] [stdout]               Aes192
[INFO] [stdout]               Aes192Dec
[INFO] [stdout]               Aes192Enc
[INFO] [stdout]               Aes256
[INFO] [stdout]               Aes256Dec
[INFO] [stdout]             and 20 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:120:37
[INFO] [stdout]     |
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                                     ^^^^^^^^^^ expected `usize`, found `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: cannot subtract `&u8` from `usize`
[INFO] [stdout]    --> src/main.rs:120:35
[INFO] [stdout]     |
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                                   ^ no implementation for `usize - &u8`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sub<&u8>` is not implemented for `usize`
[INFO] [stdout] help: the following other types implement trait `Sub<Rhs>`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:22:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub<usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:33:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub<&usize>`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/internal_macros.rs:44:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `&usize` implements `Sub`
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout]     = note: `usize` implements `Sub`
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/ops/arith.rs:225:0
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `forward_ref_binop` which comes from the expansion of the macro `sub_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:195:49
[INFO] [stdout]     |
[INFO] [stdout] 195 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                           ---                   ^^^^^^^^^^^^^^ expected `Vec<u8>`, found `u8`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                  found type `u8`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^             ----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn un_pad(data: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |                             ------- expected `Vec<u8>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `()`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]             found unit type `()`
[INFO] [stdout] note: method `truncate` modifies its receiver in-place
[INFO] [stdout]    --> src/main.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |         return data.truncate(size - last_digit);
[INFO] [stdout]     |                ---- ^^^^^^^^ this call modifies `data` in-place
[INFO] [stdout]     |                |
[INFO] [stdout]     |                you probably want to use this value after calling the method...
[INFO] [stdout]     = note: ...instead of the `()` output of method `truncate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:197:49
[INFO] [stdout]     |
[INFO] [stdout] 197 |             xored_block = xor(padded_groups[i], encrypted_groups[i - 1]);
[INFO] [stdout]     |                           ---                   ^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^             ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 197 |             xored_block = xor(padded_groups[i], encrypted_groups[i - 1].to_vec());
[INFO] [stdout]     |                                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:199:43
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let decrypted_block = aes_decrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:44:4
[INFO] [stdout]     |
[INFO] [stdout]  44 | fn aes_decrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:200:38
[INFO] [stdout]     |
[INFO] [stdout] 200 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |                               ------ ^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn un_pad(data: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^ -------------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 200 |         plaintext_groups.push(un_pad(decrypted_block.to_vec()));
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:144:34
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let padded_groups = un_group(un_pad(cipher_text));
[INFO] [stdout]     |                         -------- ^^^^^^^^^^^^^^^^^^^ expected `Vec<[u8; 16]>`, found `Vec<u8>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<[u8; 16]>`
[INFO] [stdout]                found struct `Vec<u8>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:99:4
[INFO] [stdout]     |
[INFO] [stdout]  99 | fn un_group(blocks: Vec<[u8; BLOCK_SIZE]>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^ -----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:147:43
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let decrypted_block = aes_decrypt(block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^ expected `[u8; 16]`, found `u8`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:44:4
[INFO] [stdout]     |
[INFO] [stdout]  44 | fn aes_decrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     zip(a, b).map(|(x, y)| x ^ y).collect::<Vec<u8>>()
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found `Vec<u8>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected unit type `()`
[INFO] [stdout]                   found struct `Vec<u8>`
[INFO] [stdout] help: consider using a semicolon here
[INFO] [stdout]     |
[INFO] [stdout] 154 |     zip(a, b).map(|(x, y)| x ^ y).collect::<Vec<u8>>();
[INFO] [stdout]     |                                                       +
[INFO] [stdout] help: try adding a return type
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |                                ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:203:14
[INFO] [stdout]     |
[INFO] [stdout] 200 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |         ----------------      ----------------------- this argument has type `Vec<u8>`...
[INFO] [stdout]     |         |
[INFO] [stdout]     |         ... which causes `plaintext_groups` to have type `Vec<Vec<u8>>`
[INFO] [stdout] ...
[INFO] [stdout] 203 |     un_group(plaintext_groups)
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^^^^^ expected `Vec<[u8; 16]>`, found `Vec<Vec<u8>>`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<[u8; 16]>`
[INFO] [stdout]                found struct `Vec<Vec<u8>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:99:4
[INFO] [stdout]     |
[INFO] [stdout]  99 | fn un_group(blocks: Vec<[u8; BLOCK_SIZE]>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^ -----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:173:27
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = KeyInit::new(8);
[INFO] [stdout]     |              ------------ ^ expected `&GenericArray<u8, _>`, found integer
[INFO] [stdout]     |              |
[INFO] [stdout]     |              arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&GenericArray<u8, _>`
[INFO] [stdout]                     found type `{integer}`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.6/src/lib.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn new(key: &Key<Self>) -> Self;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Vec<_>: KeyInit` is not satisfied
[INFO] [stdout]    --> src/main.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = KeyInit::new(8);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^ the trait `KeyInit` is not implemented for `&mut Vec<_>`
[INFO] [stdout]     |
[INFO] [stdout] help: consider mutably borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = &mut KeyInit::new(8);
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:230:31
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let xored_block = xor(padded_groups[i], nonce);
[INFO] [stdout]     |                           --- ^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let xored_block = xor(padded_groups[i].to_vec(), nonce);
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:232:43
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let encrypted_block = aes_encrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:30:4
[INFO] [stdout]     |
[INFO] [stdout]  30 | fn aes_encrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:179:31
[INFO] [stdout]     |
[INFO] [stdout] 179 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                           --- ^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 179 |             xored_block = xor(padded_groups[i].to_vec(), cipher_text[0]);
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |             xored_block = xor(padded_groups[i], cipher_text[i - 1]);
[INFO] [stdout]     |                           --- ^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 181 |             xored_block = xor(padded_groups[i].to_vec(), cipher_text[i - 1]);
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:183:43
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let encrypted_block = aes_encrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:30:4
[INFO] [stdout]     |
[INFO] [stdout]  30 | fn aes_encrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:184:39
[INFO] [stdout]     |
[INFO] [stdout] 184 |         cipher_text.extend_from_slice(&encrypted_block);
[INFO] [stdout]     |                     ----------------- ^^^^^^^^^^^^^^^^ expected `&[Vec<u8>]`, found `&[u8; 16]`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&[Vec<u8>]`
[INFO] [stdout]                found reference `&[u8; 16]`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/alloc/src/vec/mod.rs:3643:11
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn cbc_encrypt(plain_text: Vec<u8>, key: [u8; BLOCK_SIZE]) -> Vec<u8> {
[INFO] [stdout]     |                                                               ------- expected `Vec<u8>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 179 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                                                 ----------- here the type of `cipher_text` is inferred to be `Vec<Vec<u8>>`
[INFO] [stdout] ...
[INFO] [stdout] 186 |     cipher_text
[INFO] [stdout]     |     ^^^^^^^^^^^ expected `Vec<u8>`, found `Vec<Vec<u8>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                found struct `Vec<Vec<u8>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `append` found for type `u8` in the current scope
[INFO] [stdout]    --> src/main.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 243 |         iv.append(i);
[INFO] [stdout]     |            ^^^^^^ method not found in `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&mut Vec<Vec<u8>>: KeySizeUser` is not satisfied
[INFO] [stdout]    --> src/main.rs:173:27
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let iv = KeyInit::new(8);
[INFO] [stdout]     |                           ^ the trait `KeySizeUser` is not implemented for `&mut Vec<Vec<u8>>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `KeySizeUser`:
[INFO] [stdout]               Aes128
[INFO] [stdout]               Aes128Dec
[INFO] [stdout]               Aes128Enc
[INFO] [stdout]               Aes192
[INFO] [stdout]               Aes192Dec
[INFO] [stdout]               Aes192Enc
[INFO] [stdout]               Aes256
[INFO] [stdout]               Aes256Dec
[INFO] [stdout]             and 20 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:195:49
[INFO] [stdout]     |
[INFO] [stdout] 195 |             xored_block = xor(padded_groups[i], cipher_text[0]);
[INFO] [stdout]     |                           ---                   ^^^^^^^^^^^^^^ expected `Vec<u8>`, found `u8`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                  found type `u8`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^             ----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:244:27
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let xored_block = xor(cipher_text[i], iv);
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout] note: expected `Vec<u8>`, found `u8`
[INFO] [stdout]    --> src/main.rs:244:31
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let xored_block = xor(cipher_text[i], iv);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                  found type `u8`
[INFO] [stdout] note: expected `Vec<u8>`, found `u8`
[INFO] [stdout]    --> src/main.rs:244:47
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let xored_block = xor(cipher_text[i], iv);
[INFO] [stdout]     |                                               ^^
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                  found type `u8`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------  ----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:197:49
[INFO] [stdout]     |
[INFO] [stdout] 197 |             xored_block = xor(padded_groups[i], encrypted_groups[i - 1]);
[INFO] [stdout]     |                           ---                   ^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^             ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 197 |             xored_block = xor(padded_groups[i], encrypted_groups[i - 1].to_vec());
[INFO] [stdout]     |                                                                        +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:199:43
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let decrypted_block = aes_decrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:44:4
[INFO] [stdout]     |
[INFO] [stdout]  44 | fn aes_decrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:200:38
[INFO] [stdout]     |
[INFO] [stdout] 200 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |                               ------ ^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn un_pad(data: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^ -------------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 200 |         plaintext_groups.push(un_pad(decrypted_block.to_vec()));
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:203:14
[INFO] [stdout]     |
[INFO] [stdout] 200 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |         ----------------      ----------------------- this argument has type `Vec<u8>`...
[INFO] [stdout]     |         |
[INFO] [stdout]     |         ... which causes `plaintext_groups` to have type `Vec<Vec<u8>>`
[INFO] [stdout] ...
[INFO] [stdout] 203 |     un_group(plaintext_groups)
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^^^^^ expected `Vec<[u8; 16]>`, found `Vec<Vec<u8>>`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<[u8; 16]>`
[INFO] [stdout]                found struct `Vec<Vec<u8>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:99:4
[INFO] [stdout]     |
[INFO] [stdout]  99 | fn un_group(blocks: Vec<[u8; BLOCK_SIZE]>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^ -----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:230:31
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let xored_block = xor(padded_groups[i], nonce);
[INFO] [stdout]     |                           --- ^^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let xored_block = xor(padded_groups[i].to_vec(), nonce);
[INFO] [stdout]     |                                               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:232:43
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let encrypted_block = aes_encrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:30:4
[INFO] [stdout]     |
[INFO] [stdout]  30 | fn aes_encrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pop` found for type `u8` in the current scope
[INFO] [stdout]    --> src/main.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 245 |         iv.pop();
[INFO] [stdout]     |            ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `pow` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/num/uint_macros.rs:3664:8
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/num/mod.rs:587:4
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/num/mod.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `uint_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:246:43
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let decrypted_block = aes_decrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:44:4
[INFO] [stdout]     |
[INFO] [stdout]  44 | fn aes_decrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:247:38
[INFO] [stdout]     |
[INFO] [stdout] 247 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |                               ------ ^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn un_pad(data: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^ -------------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 247 |         plaintext_groups.push(un_pad(decrypted_block.to_vec()));
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:249:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |         ----------------      ----------------------- this argument has type `Vec<u8>`...
[INFO] [stdout]     |         |
[INFO] [stdout]     |         ... which causes `plaintext_groups` to have type `Vec<Vec<u8>>`
[INFO] [stdout] 248 |     }
[INFO] [stdout] 249 |     un_group(plaintext_groups)
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^^^^^ expected `Vec<[u8; 16]>`, found `Vec<Vec<u8>>`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<[u8; 16]>`
[INFO] [stdout]                found struct `Vec<Vec<u8>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:99:4
[INFO] [stdout]     |
[INFO] [stdout]  99 | fn un_group(blocks: Vec<[u8; BLOCK_SIZE]>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^ -----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `append` found for type `u8` in the current scope
[INFO] [stdout]    --> src/main.rs:243:12
[INFO] [stdout]     |
[INFO] [stdout] 243 |         iv.append(i);
[INFO] [stdout]     |            ^^^^^^ method not found in `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/main.rs:244:27
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let xored_block = xor(cipher_text[i], iv);
[INFO] [stdout]     |                           ^^^
[INFO] [stdout]     |
[INFO] [stdout] note: expected `Vec<u8>`, found `u8`
[INFO] [stdout]    --> src/main.rs:244:31
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let xored_block = xor(cipher_text[i], iv);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                  found type `u8`
[INFO] [stdout] note: expected `Vec<u8>`, found `u8`
[INFO] [stdout]    --> src/main.rs:244:47
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let xored_block = xor(cipher_text[i], iv);
[INFO] [stdout]     |                                               ^^
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                  found type `u8`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:153:4
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn xor(a: Vec<u8>, b: Vec<u8>) {
[INFO] [stdout]     |    ^^^ ----------  ----------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0423, E0425, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `pop` found for type `u8` in the current scope
[INFO] [stdout]    --> src/main.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 245 |         iv.pop();
[INFO] [stdout]     |            ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `pow` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/num/uint_macros.rs:3664:8
[INFO] [stdout]    --> /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/num/mod.rs:587:4
[INFO] [stdout]    ::: /rustc/f4dd856795debe636f2ba39a900f162f5abeb7e8/library/core/src/num/mod.rs:611:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `uint_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:246:43
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let decrypted_block = aes_decrypt(xored_block, &key);
[INFO] [stdout]     |                               ----------- ^^^^^^^^^^^ expected `[u8; 16]`, found `()`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:44:4
[INFO] [stdout]     |
[INFO] [stdout]  44 | fn aes_decrypt(data: [u8; BLOCK_SIZE], key: &[u8; BLOCK_SIZE]) -> [u8; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^^^ ----------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:247:38
[INFO] [stdout]     |
[INFO] [stdout] 247 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |                               ------ ^^^^^^^^^^^^^^^ expected `Vec<u8>`, found `[u8; 16]`
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<u8>`
[INFO] [stdout]                 found array `[u8; 16]`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn un_pad(data: Vec<u8>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^ -------------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 247 |         plaintext_groups.push(un_pad(decrypted_block.to_vec()));
[INFO] [stdout]     |                                                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:249:14
[INFO] [stdout]     |
[INFO] [stdout] 247 |         plaintext_groups.push(un_pad(decrypted_block));
[INFO] [stdout]     |         ----------------      ----------------------- this argument has type `Vec<u8>`...
[INFO] [stdout]     |         |
[INFO] [stdout]     |         ... which causes `plaintext_groups` to have type `Vec<Vec<u8>>`
[INFO] [stdout] 248 |     }
[INFO] [stdout] 249 |     un_group(plaintext_groups)
[INFO] [stdout]     |     -------- ^^^^^^^^^^^^^^^^ expected `Vec<[u8; 16]>`, found `Vec<Vec<u8>>`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<[u8; 16]>`
[INFO] [stdout]                found struct `Vec<Vec<u8>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/main.rs:99:4
[INFO] [stdout]     |
[INFO] [stdout]  99 | fn un_group(blocks: Vec<[u8; BLOCK_SIZE]>) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^ -----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0423, E0425, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `group-assignment-2` (bin "group-assignment-2") due to 33 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `group-assignment-2` (bin "group-assignment-2" test) due to 33 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8", kill_on_drop: false }`
[INFO] [stdout] d54f9bc200d58e6bc025bea344473fb13768671be9f82cf152a8d7351fe732f8
