[INFO] cloning repository https://github.com/llorz-o/rust-learn [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/llorz-o/rust-learn" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllorz-o%2Frust-learn", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllorz-o%2Frust-learn'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 50094e3fa314eea2cd33ad22fe5ccb7b1c8bb59a [INFO] checking llorz-o/rust-learn against master#0599f3403366d9c57f0625e6de3af214b5042a90 for pr-87710 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fllorz-o%2Frust-learn" "/workspace/builds/worker-5/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/llorz-o/rust-learn on toolchain 0599f3403366d9c57f0625e6de3af214b5042a90 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+0599f3403366d9c57f0625e6de3af214b5042a90" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/llorz-o/rust-learn [INFO] finished tweaking git repo https://github.com/llorz-o/rust-learn [INFO] tweaked toml for git repo https://github.com/llorz-o/rust-learn written to /workspace/builds/worker-5/source/Cargo.toml [INFO] crate git repo https://github.com/llorz-o/rust-learn already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+0599f3403366d9c57f0625e6de3af214b5042a90" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /workspace/builds/worker-5/source/web-security/Cargo.toml [INFO] [stderr] workspace: /workspace/builds/worker-5/source/Cargo.toml [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+0599f3403366d9c57f0625e6de3af214b5042a90" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b0e1e37e4910e698327a0d00ea28ea0f69d114ad25618867c0edb4fdc7e9e6ec [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" "b0e1e37e4910e698327a0d00ea28ea0f69d114ad25618867c0edb4fdc7e9e6ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b0e1e37e4910e698327a0d00ea28ea0f69d114ad25618867c0edb4fdc7e9e6ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b0e1e37e4910e698327a0d00ea28ea0f69d114ad25618867c0edb4fdc7e9e6ec", kill_on_drop: false }` [INFO] [stdout] b0e1e37e4910e698327a0d00ea28ea0f69d114ad25618867c0edb4fdc7e9e6ec [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+0599f3403366d9c57f0625e6de3af214b5042a90" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 890a90035016c4378b702103c3b066ca7be9b76987aaaf2c12cabf9047185698 [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" "890a90035016c4378b702103c3b066ca7be9b76987aaaf2c12cabf9047185698", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /opt/rustwide/workdir/web-security/Cargo.toml [INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml [INFO] [stderr] Compiling proc-macro2 v1.0.26 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling syn v1.0.69 [INFO] [stderr] Compiling rustc-serialize v0.3.24 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling term v0.4.6 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.75 [INFO] [stderr] Checking once_cell v1.7.2 [INFO] [stderr] Compiling bitflags v0.5.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling regex-syntax v0.6.23 [INFO] [stderr] Checking pnet_base v0.27.2 [INFO] [stderr] Compiling wasm-bindgen v0.2.75 [INFO] [stderr] Compiling glob v0.2.11 [INFO] [stderr] Checking cpuid-bool v0.1.2 [INFO] [stderr] Checking futures-io v0.3.13 [INFO] [stderr] Checking siphasher v0.3.5 [INFO] [stderr] Checking unicode-width v0.1.8 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Compiling pnet v0.27.2 [INFO] [stderr] Compiling unicode-segmentation v1.7.1 [INFO] [stderr] Compiling async-trait v0.1.48 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking hello v0.1.0 (/opt/rustwide/workdir/hello) [INFO] [stderr] Checking restaurant v0.1.0 (/opt/rustwide/workdir/restaurant) [INFO] [stderr] Checking module v0.1.0 (/opt/rustwide/workdir/module) [INFO] [stdout] warning: type `demo` should have an upper camel case name [INFO] [stdout] --> restaurant/src/lib.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct demo { [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `Demo` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `demo2` should have an upper camel case name [INFO] [stdout] --> restaurant/src/lib.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum demo2 { [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Demo2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> restaurant/src/lib.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> restaurant/src/lib.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `age` [INFO] [stdout] --> restaurant/src/lib.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | age: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling tokio v1.4.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking lock_api v0.4.3 [INFO] [stdout] warning: type `demo` should have an upper camel case name [INFO] [stdout] --> restaurant/src/lib.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct demo { [INFO] [stdout] | ^^^^ help: convert the identifier to upper camel case: `Demo` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `demo2` should have an upper camel case name [INFO] [stdout] --> restaurant/src/lib.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum demo2 { [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Demo2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> restaurant/src/lib.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> restaurant/src/lib.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `age` [INFO] [stdout] --> restaurant/src/lib.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | age: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tracing-core v0.1.17 [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking sharded-slab v0.1.1 [INFO] [stderr] Checking futures-channel v0.3.13 [INFO] [stderr] Checking pnet_macros_support v0.27.2 [INFO] [stderr] Checking thread_local v1.1.3 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking phf_shared v0.8.0 [INFO] [stderr] Compiling heck v0.3.2 [INFO] [stderr] Checking unicode-normalization v0.1.17 [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> hello/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> hello/src/main.rs:101:19 [INFO] [stdout] | [INFO] [stdout] 101 | match (request.method) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request_body` [INFO] [stdout] --> hello/src/main.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | let request_body = &request[1]; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_body` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> hello/src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression [INFO] [stdout] --> hello/src/main.rs:101:19 [INFO] [stdout] | [INFO] [stdout] 101 | match (request.method) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> hello/src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | fn new(mut stream: &TcpStream) -> Router { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Response` [INFO] [stdout] --> hello/src/main.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | struct Response { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request_body` [INFO] [stdout] --> hello/src/main.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | let request_body = &request[1]; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_body` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> hello/src/main.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 78 | fn new(mut stream: &TcpStream) -> Router { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Response` [INFO] [stdout] --> hello/src/main.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | struct Response { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking parking_lot_core v0.8.3 [INFO] [stderr] Checking getrandom v0.2.2 [INFO] [stderr] Checking getrandom v0.1.15 [INFO] [stderr] Checking pnet_sys v0.27.2 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Compiling aho-corasick v0.7.15 [INFO] [stderr] Checking ipnetwork v0.17.0 [INFO] [stderr] Checking json_data v0.1.0 (/opt/rustwide/workdir/json_data) [INFO] [stderr] Checking tracing-serde v0.1.2 [INFO] [stderr] Checking serde_json v1.0.64 [INFO] [stderr] Checking phf v0.8.0 [INFO] [stderr] Compiling log v0.3.9 [INFO] [stdout] error: cannot find derive macro `Serialize` in this scope [INFO] [stdout] --> json_data/src/main.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Serialize,Deserialize,Debug)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Serialize` is imported here, but it is only a trait, without a derive macro [INFO] [stdout] --> json_data/src/main.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use serde::{Serialize,Deserialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find derive macro `Deserialize` in this scope [INFO] [stdout] --> json_data/src/main.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Serialize,Deserialize,Debug)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Deserialize` is imported here, but it is only a trait, without a derive macro [INFO] [stdout] --> json_data/src/main.rs:3:23 [INFO] [stdout] | [INFO] [stdout] 3 | use serde::{Serialize,Deserialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stdout] error: cannot find derive macro `Serialize` in this scope [INFO] [stdout] --> json_data/src/main.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Serialize,Deserialize,Debug)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Serialize` is imported here, but it is only a trait, without a derive macro [INFO] [stdout] --> json_data/src/main.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use serde::{Serialize,Deserialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find derive macro `Deserialize` in this scope [INFO] [stdout] --> json_data/src/main.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | #[derive(Serialize,Deserialize,Debug)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Deserialize` is imported here, but it is only a trait, without a derive macro [INFO] [stdout] --> json_data/src/main.rs:3:23 [INFO] [stdout] | [INFO] [stdout] 3 | use serde::{Serialize,Deserialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `TestStruct: Encodable` is not satisfied [INFO] [stdout] --> json_data/src/main.rs:20:31 [INFO] [stdout] | [INFO] [stdout] 20 | let encode = json::encode(&o).unwrap(); [INFO] [stdout] | ^^ the trait `Encodable` is not implemented for `TestStruct` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `rustc_serialize::json::encode` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.24/src/json.rs:390:18 [INFO] [stdout] | [INFO] [stdout] 390 | pub fn encode(object: &T) -> EncodeResult { [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `rustc_serialize::json::encode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `TestStruct: Decodable` is not satisfied [INFO] [stdout] --> json_data/src/main.rs:23:29 [INFO] [stdout] | [INFO] [stdout] 23 | let decode:TestStruct = json::decode(&encode).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Decodable` is not implemented for `TestStruct` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `rustc_serialize::json::decode` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.24/src/json.rs:379:18 [INFO] [stdout] | [INFO] [stdout] 379 | pub fn decode(s: &str) -> DecodeResult { [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `rustc_serialize::json::decode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `TestStruct: Encodable` is not satisfied [INFO] [stdout] --> json_data/src/main.rs:20:31 [INFO] [stdout] | [INFO] [stdout] 20 | let encode = json::encode(&o).unwrap(); [INFO] [stdout] | ^^ the trait `Encodable` is not implemented for `TestStruct` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `rustc_serialize::json::encode` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.24/src/json.rs:390:18 [INFO] [stdout] | [INFO] [stdout] 390 | pub fn encode(object: &T) -> EncodeResult { [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `rustc_serialize::json::encode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `TestStruct: Decodable` is not satisfied [INFO] [stdout] --> json_data/src/main.rs:23:29 [INFO] [stdout] | [INFO] [stdout] 23 | let decode:TestStruct = json::decode(&encode).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^ the trait `Decodable` is not implemented for `TestStruct` [INFO] [stdout] | [INFO] [stdout] note: required by a bound in `rustc_serialize::json::decode` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.24/src/json.rs:379:18 [INFO] [stdout] | [INFO] [stdout] 379 | pub fn decode(s: &str) -> DecodeResult { [INFO] [stdout] | ^^^^^^^^^^^ required by this bound in `rustc_serialize::json::decode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `json_data` due to 5 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "890a90035016c4378b702103c3b066ca7be9b76987aaaf2c12cabf9047185698", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "890a90035016c4378b702103c3b066ca7be9b76987aaaf2c12cabf9047185698", kill_on_drop: false }` [INFO] [stdout] 890a90035016c4378b702103c3b066ca7be9b76987aaaf2c12cabf9047185698