[INFO] cloning repository https://github.com/lreynolds18/cryptopals [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lreynolds18/cryptopals" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flreynolds18%2Fcryptopals", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flreynolds18%2Fcryptopals'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a144dc8081fb7cf99e7c15ea1426e03c73f78842 [INFO] checking lreynolds18/cryptopals against beta for pr-78714 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flreynolds18%2Fcryptopals" "/workspace/builds/worker-2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/lreynolds18/cryptopals on toolchain beta [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/lreynolds18/cryptopals [INFO] finished tweaking git repo https://github.com/lreynolds18/cryptopals [INFO] tweaked toml for git repo https://github.com/lreynolds18/cryptopals written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/lreynolds18/cryptopals already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 63023e47eed2f096509150e4db960c8d97b5baa15626c645fd7ce7502a2138a0 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "63023e47eed2f096509150e4db960c8d97b5baa15626c645fd7ce7502a2138a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "63023e47eed2f096509150e4db960c8d97b5baa15626c645fd7ce7502a2138a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "63023e47eed2f096509150e4db960c8d97b5baa15626c645fd7ce7502a2138a0", kill_on_drop: false }` [INFO] [stdout] 63023e47eed2f096509150e4db960c8d97b5baa15626c645fd7ce7502a2138a0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8c3fb72c96247391c213e48435ef399bceee01de9836514725b5381f44fa925f [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "8c3fb72c96247391c213e48435ef399bceee01de9836514725b5381f44fa925f", kill_on_drop: false }` [INFO] [stderr] Checking libc v0.2.41 [INFO] [stderr] Checking atty v0.2.11 [INFO] [stderr] Checking clap v2.33.0 [INFO] [stderr] Checking cryptopals v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0603]: struct `Builder` is private [INFO] [stdout] --> src/set1/mod.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use challenge::Builder; [INFO] [stdout] | ^^^^^^^ private struct [INFO] [stdout] | [INFO] [stdout] note: the struct `Builder` is defined here [INFO] [stdout] --> src/challenge.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | struct Builder { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `challenge::Challenge` [INFO] [stdout] --> src/set1/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use challenge::Challenge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:118:19 [INFO] [stdout] | [INFO] [stdout] 118 | 48...57 => u - 48, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:119:19 [INFO] [stdout] | [INFO] [stdout] 119 | 97...102 => u - 87, // a - f [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:120:19 [INFO] [stdout] | [INFO] [stdout] 120 | 65...70 => u - 55, // A - F [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:126:19 [INFO] [stdout] | [INFO] [stdout] 126 | 65...90 => u - 65, // A - Z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:127:19 [INFO] [stdout] | [INFO] [stdout] 127 | 97...122 => u - 71, // a - z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | 48...57 => u + 4, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:152:18 [INFO] [stdout] | [INFO] [stdout] 152 | 0...9 => (u + 48) as char, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:153:19 [INFO] [stdout] | [INFO] [stdout] 153 | 10...15 => (u + 87) as char, // a - f [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:159:18 [INFO] [stdout] | [INFO] [stdout] 159 | 0...25 => (u + 65) as char, // A - Z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:160:19 [INFO] [stdout] | [INFO] [stdout] 160 | 26...51 => (u + 71) as char, // a - z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:161:19 [INFO] [stdout] | [INFO] [stdout] 161 | 52...61 => (u - 4) as char, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `storage::Storage` [INFO] [stdout] --> src/challenge.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0603]: struct `Builder` is private [INFO] [stdout] --> src/set1/mod.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use challenge::Builder; [INFO] [stdout] | ^^^^^^^ private struct [INFO] [stdout] | [INFO] [stdout] note: the struct `Builder` is defined here [INFO] [stdout] --> src/challenge.rs:51:1 [INFO] [stdout] | [INFO] [stdout] 51 | struct Builder { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `challenge::Challenge` [INFO] [stdout] --> src/set1/mod.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use challenge::Challenge; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:118:19 [INFO] [stdout] | [INFO] [stdout] 118 | 48...57 => u - 48, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:119:19 [INFO] [stdout] | [INFO] [stdout] 119 | 97...102 => u - 87, // a - f [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:120:19 [INFO] [stdout] | [INFO] [stdout] 120 | 65...70 => u - 55, // A - F [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:126:19 [INFO] [stdout] | [INFO] [stdout] 126 | 65...90 => u - 65, // A - Z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:127:19 [INFO] [stdout] | [INFO] [stdout] 127 | 97...122 => u - 71, // a - z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | 48...57 => u + 4, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:152:18 [INFO] [stdout] | [INFO] [stdout] 152 | 0...9 => (u + 48) as char, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:153:19 [INFO] [stdout] | [INFO] [stdout] 153 | 10...15 => (u + 87) as char, // a - f [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:159:18 [INFO] [stdout] | [INFO] [stdout] 159 | 0...25 => (u + 65) as char, // A - Z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:160:19 [INFO] [stdout] | [INFO] [stdout] 160 | 26...51 => (u + 71) as char, // a - z [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/storage.rs:161:19 [INFO] [stdout] | [INFO] [stdout] 161 | 52...61 => (u - 4) as char, // 0 - 9 [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `storage::Storage` [INFO] [stdout] --> src/challenge.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use storage::Storage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `header` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:337:34 [INFO] [stdout] | [INFO] [stdout] 28 | fn header(&mut self, header: String) -> &mut Self; [INFO] [stdout] | ------ type in trait [INFO] [stdout] ... [INFO] [stdout] 337 | fn header(&mut self, header: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected struct `String`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, String) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:341:32 [INFO] [stdout] | [INFO] [stdout] 29 | fn input(&mut self, input: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 341 | fn input(&mut self, input: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input_file` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:345:42 [INFO] [stdout] | [INFO] [stdout] 30 | fn input_file(&mut self, input_file: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 345 | fn input_file(&mut self, input_file: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:349:42 [INFO] [stdout] | [INFO] [stdout] 31 | fn input_type(&mut self, input_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 349 | fn input_type(&mut self, input_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input2` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:353:34 [INFO] [stdout] | [INFO] [stdout] 32 | fn input2(&mut self, input2: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 353 | fn input2(&mut self, input2: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input2_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:357:44 [INFO] [stdout] | [INFO] [stdout] 33 | fn input2_type(&mut self, input2_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 357 | fn input2_type(&mut self, input2_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `key` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:361:28 [INFO] [stdout] | [INFO] [stdout] 34 | fn key(&mut self, key: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 361 | fn key(&mut self, key: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `key_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:365:38 [INFO] [stdout] | [INFO] [stdout] 35 | fn key_type(&mut self, key_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 365 | fn key_type(&mut self, key_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:369:48 [INFO] [stdout] | [INFO] [stdout] 36 | fn expected_type(&mut self, expected_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 369 | fn expected_type(&mut self, expected_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_line` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:373:48 [INFO] [stdout] | [INFO] [stdout] 38 | fn expected_line(&mut self, expected_line: Option) -> &mut Self; [INFO] [stdout] | ----------- type in trait [INFO] [stdout] ... [INFO] [stdout] 373 | fn expected_line(&mut self, expected_line: i32) -> &mut Self { [INFO] [stdout] | ^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, i32) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_size` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:377:48 [INFO] [stdout] | [INFO] [stdout] 40 | fn expected_size(&mut self, expected_size: Option) -> &mut Self; [INFO] [stdout] | ------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 377 | fn expected_size(&mut self, expected_size: usize) -> &mut Self { [INFO] [stdout] | ^^^^^ expected enum `Option`, found `usize` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, usize) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_key` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:381:46 [INFO] [stdout] | [INFO] [stdout] 42 | fn expected_key(&mut self, expected_key: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 381 | fn expected_key(&mut self, expected_key: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_key_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:385:56 [INFO] [stdout] | [INFO] [stdout] 44 | fn expected_key_type(&mut self, expected_key_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 385 | fn expected_key_type(&mut self, expected_key_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_answer` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:389:52 [INFO] [stdout] | [INFO] [stdout] 46 | fn expected_answer(&mut self, expected_answer: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 389 | fn expected_answer(&mut self, expected_answer: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0046]: not all trait items implemented, missing: `actual_type`, `actual_line`, `actual_size`, `actual_key`, `actual_key_type`, `actual_answer` [INFO] [stdout] --> src/challenge.rs:336:1 [INFO] [stdout] | [INFO] [stdout] 37 | fn actual_type(&mut self, actual_type: Option) -> &mut Self; [INFO] [stdout] | -------------------------------------------------------------------- `actual_type` from trait [INFO] [stdout] 38 | fn expected_line(&mut self, expected_line: Option) -> &mut Self; [INFO] [stdout] 39 | fn actual_line(&mut self, actual_line: Option) -> &mut Self; [INFO] [stdout] | ----------------------------------------------------------------- `actual_line` from trait [INFO] [stdout] 40 | fn expected_size(&mut self, expected_size: Option) -> &mut Self; [INFO] [stdout] 41 | fn actual_size(&mut self, actual_answer: Option) -> &mut Self; [INFO] [stdout] | --------------------------------------------------------------------- `actual_size` from trait [INFO] [stdout] 42 | fn expected_key(&mut self, expected_key: Option) -> &mut Self; [INFO] [stdout] 43 | fn actual_key(&mut self, actual_key: Option) -> &mut Self; [INFO] [stdout] | ------------------------------------------------------------------ `actual_key` from trait [INFO] [stdout] 44 | fn expected_key_type(&mut self, expected_key_type: Option) -> &mut Self; [INFO] [stdout] 45 | fn actual_key_type(&mut self, actual_key_type: Option) -> &mut Self; [INFO] [stdout] | ---------------------------------------------------------------------------- `actual_key_type` from trait [INFO] [stdout] 46 | fn expected_answer(&mut self, expected_answer: Option) -> &mut Self; [INFO] [stdout] 47 | fn actual_answer(&mut self, actual_answer: Option) -> &mut Self; [INFO] [stdout] | ------------------------------------------------------------------------ `actual_answer` from trait [INFO] [stdout] ... [INFO] [stdout] 336 | impl ChallengeBuilder for Builder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `actual_type`, `actual_line`, `actual_size`, `actual_key`, `actual_key_type`, `actual_answer` in implementation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `header` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:337:34 [INFO] [stdout] | [INFO] [stdout] 28 | fn header(&mut self, header: String) -> &mut Self; [INFO] [stdout] | ------ type in trait [INFO] [stdout] ... [INFO] [stdout] 337 | fn header(&mut self, header: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected struct `String`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, String) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:341:32 [INFO] [stdout] | [INFO] [stdout] 29 | fn input(&mut self, input: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 341 | fn input(&mut self, input: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input_file` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:345:42 [INFO] [stdout] | [INFO] [stdout] 30 | fn input_file(&mut self, input_file: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 345 | fn input_file(&mut self, input_file: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:349:42 [INFO] [stdout] | [INFO] [stdout] 31 | fn input_type(&mut self, input_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 349 | fn input_type(&mut self, input_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input2` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:353:34 [INFO] [stdout] | [INFO] [stdout] 32 | fn input2(&mut self, input2: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 353 | fn input2(&mut self, input2: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `input2_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:357:44 [INFO] [stdout] | [INFO] [stdout] 33 | fn input2_type(&mut self, input2_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 357 | fn input2_type(&mut self, input2_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `key` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:361:28 [INFO] [stdout] | [INFO] [stdout] 34 | fn key(&mut self, key: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 361 | fn key(&mut self, key: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `key_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:365:38 [INFO] [stdout] | [INFO] [stdout] 35 | fn key_type(&mut self, key_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 365 | fn key_type(&mut self, key_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:369:48 [INFO] [stdout] | [INFO] [stdout] 36 | fn expected_type(&mut self, expected_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 369 | fn expected_type(&mut self, expected_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_line` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:373:48 [INFO] [stdout] | [INFO] [stdout] 38 | fn expected_line(&mut self, expected_line: Option) -> &mut Self; [INFO] [stdout] | ----------- type in trait [INFO] [stdout] ... [INFO] [stdout] 373 | fn expected_line(&mut self, expected_line: i32) -> &mut Self { [INFO] [stdout] | ^^^ expected enum `Option`, found `i32` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, i32) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_size` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:377:48 [INFO] [stdout] | [INFO] [stdout] 40 | fn expected_size(&mut self, expected_size: Option) -> &mut Self; [INFO] [stdout] | ------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 377 | fn expected_size(&mut self, expected_size: usize) -> &mut Self { [INFO] [stdout] | ^^^^^ expected enum `Option`, found `usize` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, usize) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_key` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:381:46 [INFO] [stdout] | [INFO] [stdout] 42 | fn expected_key(&mut self, expected_key: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 381 | fn expected_key(&mut self, expected_key: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_key_type` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:385:56 [INFO] [stdout] | [INFO] [stdout] 44 | fn expected_key_type(&mut self, expected_key_type: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 385 | fn expected_key_type(&mut self, expected_key_type: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0053]: method `expected_answer` has an incompatible type for trait [INFO] [stdout] --> src/challenge.rs:389:52 [INFO] [stdout] | [INFO] [stdout] 46 | fn expected_answer(&mut self, expected_answer: Option) -> &mut Self; [INFO] [stdout] | -------------- type in trait [INFO] [stdout] ... [INFO] [stdout] 389 | fn expected_answer(&mut self, expected_answer: &str) -> &mut Self { [INFO] [stdout] | ^^^^ expected enum `Option`, found `&str` [INFO] [stdout] | [INFO] [stdout] = note: expected fn pointer `fn(&mut challenge::Builder, Option) -> &mut challenge::Builder` [INFO] [stdout] found fn pointer `fn(&mut challenge::Builder, &str) -> &mut challenge::Builder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0046]: not all trait items implemented, missing: `actual_type`, `actual_line`, `actual_size`, `actual_key`, `actual_key_type`, `actual_answer` [INFO] [stdout] --> src/challenge.rs:336:1 [INFO] [stdout] | [INFO] [stdout] 37 | fn actual_type(&mut self, actual_type: Option) -> &mut Self; [INFO] [stdout] | -------------------------------------------------------------------- `actual_type` from trait [INFO] [stdout] 38 | fn expected_line(&mut self, expected_line: Option) -> &mut Self; [INFO] [stdout] 39 | fn actual_line(&mut self, actual_line: Option) -> &mut Self; [INFO] [stdout] | ----------------------------------------------------------------- `actual_line` from trait [INFO] [stdout] 40 | fn expected_size(&mut self, expected_size: Option) -> &mut Self; [INFO] [stdout] 41 | fn actual_size(&mut self, actual_answer: Option) -> &mut Self; [INFO] [stdout] | --------------------------------------------------------------------- `actual_size` from trait [INFO] [stdout] 42 | fn expected_key(&mut self, expected_key: Option) -> &mut Self; [INFO] [stdout] 43 | fn actual_key(&mut self, actual_key: Option) -> &mut Self; [INFO] [stdout] | ------------------------------------------------------------------ `actual_key` from trait [INFO] [stdout] 44 | fn expected_key_type(&mut self, expected_key_type: Option) -> &mut Self; [INFO] [stdout] 45 | fn actual_key_type(&mut self, actual_key_type: Option) -> &mut Self; [INFO] [stdout] | ---------------------------------------------------------------------------- `actual_key_type` from trait [INFO] [stdout] 46 | fn expected_answer(&mut self, expected_answer: Option) -> &mut Self; [INFO] [stdout] 47 | fn actual_answer(&mut self, actual_answer: Option) -> &mut Self; [INFO] [stdout] | ------------------------------------------------------------------------ `actual_answer` from trait [INFO] [stdout] ... [INFO] [stdout] 336 | impl ChallengeBuilder for Builder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `actual_type`, `actual_line`, `actual_size`, `actual_key`, `actual_key_type`, `actual_answer` in implementation [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/challenge.rs:217:21 [INFO] [stdout] | [INFO] [stdout] 217 | header: "", [INFO] [stdout] | ^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `String`, found `&str` [INFO] [stdout] | help: try using a conversion method: `"".to_string()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 17 previous errors; 13 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0046, E0053, E0308, E0603. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0046`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cryptopals` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/challenge.rs:217:21 [INFO] [stdout] | [INFO] [stdout] 217 | header: "", [INFO] [stdout] | ^^ [INFO] [stdout] | | [INFO] [stdout] | expected struct `String`, found `&str` [INFO] [stdout] | help: try using a conversion method: `"".to_string()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 17 previous errors; 13 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0046, E0053, E0308, E0603. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0046`. [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "8c3fb72c96247391c213e48435ef399bceee01de9836514725b5381f44fa925f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c3fb72c96247391c213e48435ef399bceee01de9836514725b5381f44fa925f", kill_on_drop: false }` [INFO] [stdout] 8c3fb72c96247391c213e48435ef399bceee01de9836514725b5381f44fa925f