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