[INFO] cloning repository https://github.com/DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDuyDangCode%2FHomework_Lesson_4_Rust_Generic_Type_and_Traits", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDuyDangCode%2FHomework_Lesson_4_Rust_Generic_Type_and_Traits'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 680d4ade380b75da41d0cc04aa3e7c5cd900b925
[INFO] building DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits against master#ad211ced81509462cdfe4c29ed10f97279a0acae for pr-135216
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDuyDangCode%2FHomework_Lesson_4_Rust_Generic_Type_and_Traits" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits on toolchain ad211ced81509462cdfe4c29ed10f97279a0acae
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits
[INFO] tweaked toml for git repo https://github.com/DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/DuyDangCode/Homework_Lesson_4_Rust_Generic_Type_and_Traits 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" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9512a4ff4d35c8e508d3582b89f0d9ba1c0edbd03c5cc47d48804b518a5d523a
[INFO] running `Command { std: "docker" "start" "-a" "9512a4ff4d35c8e508d3582b89f0d9ba1c0edbd03c5cc47d48804b518a5d523a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9512a4ff4d35c8e508d3582b89f0d9ba1c0edbd03c5cc47d48804b518a5d523a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9512a4ff4d35c8e508d3582b89f0d9ba1c0edbd03c5cc47d48804b518a5d523a", kill_on_drop: false }`
[INFO] [stdout] 9512a4ff4d35c8e508d3582b89f0d9ba1c0edbd03c5cc47d48804b518a5d523a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f3211a2b0f389eedd32af7f2ac3101a87b48853c595c29e97b12b1d3a2769ed0
[INFO] running `Command { std: "docker" "start" "-a" "f3211a2b0f389eedd32af7f2ac3101a87b48853c595c29e97b12b1d3a2769ed0", kill_on_drop: false }`
[INFO] [stderr]    Compiling Rust-Bootcamp-2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] running `Command { std: "docker" "inspect" "f3211a2b0f389eedd32af7f2ac3101a87b48853c595c29e97b12b1d3a2769ed0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f3211a2b0f389eedd32af7f2ac3101a87b48853c595c29e97b12b1d3a2769ed0", kill_on_drop: false }`
[INFO] [stdout] f3211a2b0f389eedd32af7f2ac3101a87b48853c595c29e97b12b1d3a2769ed0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+ad211ced81509462cdfe4c29ed10f97279a0acae" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 99c2d9afe8977e03c0e09edfbad86a2cb96b3cd44118d786638afa504723b904
[INFO] running `Command { std: "docker" "start" "-a" "99c2d9afe8977e03c0e09edfbad86a2cb96b3cd44118d786638afa504723b904", kill_on_drop: false }`
[INFO] [stderr]    Compiling Rust-Bootcamp-2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected one of `:`, `@`, or `|`, found `,`
[INFO] [stdout]  --> exercises/basic-of-rust/src/functions.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn sum(x, y: i32) {
[INFO] [stdout]   |         ^ expected one of `:`, `@`, or `|`
[INFO] [stdout]   |
[INFO] [stdout]   = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
[INFO] [stdout] help: if this is a `self` type, give it a parameter name
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn sum(self: x, y: i32) {
[INFO] [stdout]   |        +++++
[INFO] [stdout] help: if this is a parameter name, give it a type
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn sum(x: TypeName, y: i32) {
[INFO] [stdout]   |         ++++++++++
[INFO] [stdout] help: if this is a type, explicitly ignore the parameter name
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn sum(_: x, y: i32) {
[INFO] [stdout]   |        ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found `{`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:156:39
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl Package {
[INFO] [stdout]     |              - while parsing this item list starting here
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn is_international(&self) -> ??? {
[INFO] [stdout]     |                                       ^ expected identifier
[INFO] [stdout] ...
[INFO] [stdout] 163 | }
[INFO] [stdout]     | - the item list ends here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `__` in this scope
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let msgs: __ = [
[INFO] [stdout]    |               ^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Person`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         assert_eq!(p, p_expectation);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         Person
[INFO] [stdout]     |         Person
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Person`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout] 5   | struct Person {
[INFO] [stdout]     | ^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Person` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 5   + #[derive(PartialEq)]
[INFO] [stdout] 6   | struct Person {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     s.push(" world");
[INFO] [stdout]    |       ---- ^^^^^^^^ expected `char`, found `&str`
[INFO] [stdout]    |       |
[INFO] [stdout]    |       arguments to this method are incorrect
[INFO] [stdout]    |
[INFO] [stdout] note: method defined here
[INFO] [stdout]   --> /rustc/ad211ced81509462cdfe4c29ed10f97279a0acae/library/alloc/src/string.rs:1419:12
[INFO] [stdout] help: you might have meant to use `push_str`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     s.push_str(" world");
[INFO] [stdout]    |       ~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/basic-of-rust/src/functions.rs:42:23
[INFO] [stdout]    |
[INFO] [stdout] 42 |         assert_eq!(s, 3);
[INFO] [stdout]    |                       ^ expected `()`, found integer
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Person` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         assert_eq!(p, p_expectation);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Person` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Person`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Person` or manually `impl Debug for Person`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Person` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 5   + #[derive(Debug)]
[INFO] [stdout] 6   | struct Person {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Person` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         assert_eq!(p, p_expectation);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Person` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Person`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Person` or manually `impl Debug for Person`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Person` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 5   + #[derive(Debug)]
[INFO] [stdout] 6   | struct Person {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> exercises/basic-of-rust/src/functions.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn sum_one_to_n(n: u32) -> u32 {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> exercises/basic-of-rust/src/functions.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn calculate_average(numbers: &[f64]) -> f64 {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `MessageOne` doesn't implement `std::fmt::Display`
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 |     println!("{}", msg);
[INFO] [stdout]    |                    ^^^ `MessageOne` cannot be formatted with the default formatter
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `std::fmt::Display` is not implemented for `MessageOne`
[INFO] [stdout]    = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
[INFO] [stdout]    = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> exercises/basic-of-rust/src/functions.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn sum_even_numbers(numbers: &[i32]) -> i32 {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 |     s += "!".to_string();
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^ expected `&str`, found `String`
[INFO] [stdout]    |
[INFO] [stdout] help: try removing the method call
[INFO] [stdout]    |
[INFO] [stdout] 13 -     s += "!".to_string();
[INFO] [stdout] 13 +     s += "!";
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let s3 = s1 + s2;
[INFO] [stdout]    |                   ^^ expected `&str`, found `String`
[INFO] [stdout]    |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let s3 = s1 + &s2;
[INFO] [stdout]    |                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `color`
[INFO] [stdout]  --> exercises/basic-of-rust/src/strings.rs:3:14
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn exercise1(color: &str) -> String {
[INFO] [stdout]   |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_color`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `ChangeColor` found for enum `Message` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 30  | enum Message {
[INFO] [stdout]     | ------------ variant or associated item `ChangeColor` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 120 |         state.process(Message::ChangeColor(255, 0, 255));
[INFO] [stdout]     |                                ^^^^^^^^^^^ variant or associated item not found in `Message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Echo` found for enum `Message` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 30  | enum Message {
[INFO] [stdout]     | ------------ variant or associated item `Echo` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 121 |         state.process(Message::Echo(String::from("hello world")));
[INFO] [stdout]     |                                ^^^^ variant or associated item not found in `Message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_international` found for struct `Package` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:230:25
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Package {
[INFO] [stdout]     | -------------- method `is_international` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 230 |         assert!(package.is_international());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^ method not found in `Package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn reverse_string(input: &str) -> String {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word`
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:35:18
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn is_palindrome(word: &str) -> bool {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_word`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `string`
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:41:27
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn count_char_occurrences(string: &str, ch: char) -> usize {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ch`
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:41:41
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn count_char_occurrences(string: &str, ch: char) -> usize {
[INFO] [stdout]    |                                         ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Move` found for enum `Message` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 30  | enum Message {
[INFO] [stdout]     | ------------ variant or associated item `Move` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 122 |         state.process(Message::Move(Point { x: 10, y: 15 }));
[INFO] [stdout]     |                                ^^^^ variant or associated item not found in `Message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Quit` found for enum `Message` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:123:32
[INFO] [stdout]     |
[INFO] [stdout] 30  | enum Message {
[INFO] [stdout]     | ------------ variant or associated item `Quit` not found for this enum
[INFO] [stdout] ...
[INFO] [stdout] 123 |         state.process(Message::Quit);
[INFO] [stdout]     |                                ^^^^ variant or associated item not found in `Message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `is_international` found for struct `Package` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:241:26
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Package {
[INFO] [stdout]     | -------------- method `is_international` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 241 |         assert!(!package.is_international());
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^ method not found in `Package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         assert_eq!(Direction::North.opposite(), Direction::South);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:72:1
[INFO] [stdout]     |
[INFO] [stdout] 72  | enum Direction {
[INFO] [stdout]     | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(PartialEq)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         assert_eq!(Direction::North.opposite(), Direction::South);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         assert_eq!(Direction::North.opposite(), Direction::South);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         assert_eq!(Direction::East.opposite(), Direction::West);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:72:1
[INFO] [stdout]     |
[INFO] [stdout] 72  | enum Direction {
[INFO] [stdout]     | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(PartialEq)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `Rust-Bootcamp-2023` (test "strings") due to 3 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `Rust-Bootcamp-2023` (test "functions") due to 2 previous errors; 3 warnings emitted
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         assert_eq!(Direction::East.opposite(), Direction::West);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         assert_eq!(Direction::East.opposite(), Direction::West);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |         assert_eq!(Direction::South.opposite(), Direction::North);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:72:1
[INFO] [stdout]     |
[INFO] [stdout] 72  | enum Direction {
[INFO] [stdout]     | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(PartialEq)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_fees` found for struct `Package` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:253:28
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Package {
[INFO] [stdout]     | -------------- method `get_fees` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 253 |         assert_eq!(package.get_fees(cents_per_gram), 4500);
[INFO] [stdout]     |                            ^^^^^^^^ method not found in `Package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_fees` found for struct `Package` in the current scope
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:254:28
[INFO] [stdout]     |
[INFO] [stdout] 137 | struct Package {
[INFO] [stdout]     | -------------- method `get_fees` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 254 |         assert_eq!(package.get_fees(cents_per_gram * 2), 9000);
[INFO] [stdout]     |                            ^^^^^^^^ method not found in `Package`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |         assert_eq!(Direction::South.opposite(), Direction::North);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |         assert_eq!(Direction::South.opposite(), Direction::North);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |         assert_eq!(Direction::West.opposite(), Direction::East);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |         Direction
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `Direction`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:72:1
[INFO] [stdout]     |
[INFO] [stdout] 72  | enum Direction {
[INFO] [stdout]     | ^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(PartialEq)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(PartialEq)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |         assert_eq!(Direction::West.opposite(), Direction::East);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Direction` doesn't implement `Debug`
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |         assert_eq!(Direction::West.opposite(), Direction::East);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Direction` cannot be formatted using `{:?}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is not implemented for `Direction`
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Direction` or manually `impl Debug for Direction`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `Direction` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 72  + #[derive(Debug)]
[INFO] [stdout] 73  | enum Direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:62:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn process(&mut self, message: Message) {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.value`, which is behind a `&` reference
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         self.value += num;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be written
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn add(&mut self, num: i32) {
[INFO] [stdout]    |            ~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.value`, as `self` is not declared as mutable
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         self.value = 0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn clear(mut self) {
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Direction` is non-empty
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 |         match self {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `Direction` defined here
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | enum Direction {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    = note: the matched value is of type `&Direction`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 81 ~         match self {
[INFO] [stdout] 82 +             _ => todo!(),
[INFO] [stdout] 83 +         }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u2`
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |     let u2 = User {
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_u2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Operation::Add`, `Operation::Subtract`, `Operation::Multiply` and 1 more not covered
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 |     match operation {
[INFO] [stdout]     |           ^^^^^^^^^ patterns `Operation::Add`, `Operation::Subtract`, `Operation::Multiply` and 1 more not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Operation` defined here
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:92:6
[INFO] [stdout]     |
[INFO] [stdout] 92  | enum Operation {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 93  |     Add,
[INFO] [stdout]     |     --- not covered
[INFO] [stdout] 94  |     Subtract,
[INFO] [stdout]     |     -------- not covered
[INFO] [stdout] 95  |     Multiply,
[INFO] [stdout]     |     -------- not covered
[INFO] [stdout] 96  |     Divide,
[INFO] [stdout]     |     ------ not covered
[INFO] [stdout]     = note: the matched value is of type `Operation`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown, or multiple match arms
[INFO] [stdout]     |
[INFO] [stdout] 101 ~     match operation {
[INFO] [stdout] 102 +         _ => todo!(),
[INFO] [stdout] 103 +     }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of partially moved value: `u1`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:102:29
[INFO] [stdout]     |
[INFO] [stdout] 96  |       let u2 = User {
[INFO] [stdout]     |  ______________-
[INFO] [stdout] 97  | |         first: String::from("Mary"),
[INFO] [stdout] 98  | |         ..u1
[INFO] [stdout] 99  | |         
[INFO] [stdout] 100 | |     };
[INFO] [stdout]     | |_____- value partially moved here
[INFO] [stdout] 101 |
[INFO] [stdout] 102 |       println!("user: {:#?}", u1);
[INFO] [stdout]     |                               ^^ value borrowed here after partial move
[INFO] [stdout]     |
[INFO] [stdout]     = note: partial move occurs because `u1.last` has type `String`, which does not implement the `Copy` trait
[INFO] [stdout]     = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let moved = foos[0];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_moved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved_field`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let moved_field = foos[0].str_val;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moved_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of index of `Vec<Foo>`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let moved = foos[0];
[INFO] [stdout]     |                 ^^^^^^^ move occurs because value has type `Foo`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] note: if `Foo` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct Foo {
[INFO] [stdout]     | ^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 125 |     let moved = foos[0];
[INFO] [stdout]     |                 ------- you could clone this value
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let moved = &foos[0];
[INFO] [stdout]     |                 +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of index of `Vec<Foo>`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:128:23
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let moved_field = foos[0].str_val;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^ move occurs because value has type `String`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let moved_field = &foos[0].str_val;
[INFO] [stdout]     |                       +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let moved_field = foos[0].str_val.clone();
[INFO] [stdout]     |                                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let integer = Position { x: 5, y: 10 };
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let float = Position { x: 1.0, y: 4.0 };
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let p = Point {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0277, E0369, E0412, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut calculator = Calculator::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `calculator`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut calculator = Calculator::new();
[INFO] [stdout]     |             -------------- move occurs because `calculator` has type `Calculator`, which does not implement the `Copy` trait
[INFO] [stdout] 200 |         calculator.add(5);
[INFO] [stdout] 201 |         assert_eq!(calculator.get_value(), 5);
[INFO] [stdout]     |                               ----------- `calculator` moved due to this method call
[INFO] [stdout] 202 |
[INFO] [stdout] 203 |         calculator.subtract(2);
[INFO] [stdout]     |         ^^^^^^^^^^ value used here after move
[INFO] [stdout]     |
[INFO] [stdout] note: `Calculator::get_value` takes ownership of the receiver `self`, which moves `calculator`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:75:18
[INFO] [stdout]     |
[INFO] [stdout] 75  |     fn get_value(self) -> i32 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `calculator`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:204:20
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut calculator = Calculator::new();
[INFO] [stdout]     |             -------------- move occurs because `calculator` has type `Calculator`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 203 |         calculator.subtract(2);
[INFO] [stdout]     |                    ----------- `calculator` moved due to this method call
[INFO] [stdout] 204 |         assert_eq!(calculator.get_value(), 3);
[INFO] [stdout]     |                    ^^^^^^^^^^ value used here after move
[INFO] [stdout]     |
[INFO] [stdout] note: `Calculator::subtract` takes ownership of the receiver `self`, which moves `calculator`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:68:21
[INFO] [stdout]     |
[INFO] [stdout] 68  |     fn subtract(mut self, num: i32) {
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `calculator`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut calculator = Calculator::new();
[INFO] [stdout]     |             -------------- move occurs because `calculator` has type `Calculator`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 204 |         assert_eq!(calculator.get_value(), 3);
[INFO] [stdout]     |                               ----------- `calculator` moved due to this method call
[INFO] [stdout] 205 |
[INFO] [stdout] 206 |         calculator.clear();
[INFO] [stdout]     |         ^^^^^^^^^^ value used here after move
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `calculator`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:207:20
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let mut calculator = Calculator::new();
[INFO] [stdout]     |             -------------- move occurs because `calculator` has type `Calculator`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 206 |         calculator.clear();
[INFO] [stdout]     |                    ------- `calculator` moved due to this method call
[INFO] [stdout] 207 |         assert_eq!(calculator.get_value(), 0);
[INFO] [stdout]     |                    ^^^^^^^^^^ value used here after move
[INFO] [stdout]     |
[INFO] [stdout] note: `Calculator::clear` takes ownership of the receiver `self`, which moves `calculator`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:71:14
[INFO] [stdout]     |
[INFO] [stdout] 71  |     fn clear(self) {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]  --> exercises/generic-type/src/lib.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Position<T> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]  --> exercises/generic-type/src/lib.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn exercise1() {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Point<T, U> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise2` is never used
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn exercise2() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Val` is never constructed
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct Val<T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T> Val<T> {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 38 |     fn value(&self) -> &T {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise3` is never used
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn exercise3() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `Rust-Bootcamp-2023` (test "enums") due to 20 previous errors; 1 warning emitted
[INFO] [stdout] Some errors have detailed explanations: E0277, E0369, E0382, E0507, E0594, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> exercises/traits/src/lib.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn static_dispatch<T>(x: T) {}
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn foo_if_fizz(fizzish: &str) -> &str {
[INFO] [stdout]    |                                      ---- expected `&str` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 26 |         1
[INFO] [stdout]    |         ^ expected `&str`, found integer
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0600]: cannot apply unary operator `-` to type `u32`
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:77:35
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let result = check_number(-5);
[INFO] [stdout]    |                                   ^^ cannot apply unary operator `-`
[INFO] [stdout]    |
[INFO] [stdout]    = note: unsigned values cannot be negated
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]  --> exercises/basic-of-rust/src/conditions.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn bigger(a: i32, b: i32) -> i32 {
[INFO] [stdout]   |               ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `Rust-Bootcamp-2023` (test "structs") due to 17 previous errors; 4 warnings emitted
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]  --> exercises/basic-of-rust/src/conditions.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn bigger(a: i32, b: i32) -> i32 {
[INFO] [stdout]   |                       ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `number`
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn check_number(number: u32) -> &'static str {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `year`
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn is_leap_year(year: i32) -> bool {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_year`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:40:14
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn factorial(n: u32) -> u32 {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:48:13
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn is_prime(n: u32) -> bool {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0600.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `Rust-Bootcamp-2023` (test "conditions") due to 2 previous errors; 6 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "99c2d9afe8977e03c0e09edfbad86a2cb96b3cd44118d786638afa504723b904", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "99c2d9afe8977e03c0e09edfbad86a2cb96b3cd44118d786638afa504723b904", kill_on_drop: false }`
[INFO] [stdout] 99c2d9afe8977e03c0e09edfbad86a2cb96b3cd44118d786638afa504723b904
