[INFO] fetching crate redact-composer-core 0.2.5... [INFO] testing redact-composer-core-0.2.5 against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] extracting crate redact-composer-core 0.2.5 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate redact-composer-core 0.2.5 [INFO] finished tweaking crates.io crate redact-composer-core 0.2.5 [INFO] tweaked toml for crates.io crate redact-composer-core 0.2.5 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate redact-composer-core 0.2.5 on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 39 packages to latest compatible versions [INFO] [stderr] Adding rand v0.8.5 (available: v0.9.2) [INFO] [stderr] Adding rand_chacha v0.3.1 (available: v0.9.0) [INFO] [stderr] Adding thiserror v1.0.69 (available: v2.0.16) [INFO] [stderr] Adding twox-hash v1.6.3 (available: v2.1.1) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded redact-composer-derive v0.1.2 [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c1d6205307b705a67e45a525b5e873595c6647568621ff00e17c6e697ccdb940 [INFO] running `Command { std: "docker" "start" "-a" "c1d6205307b705a67e45a525b5e873595c6647568621ff00e17c6e697ccdb940", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c1d6205307b705a67e45a525b5e873595c6647568621ff00e17c6e697ccdb940", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1d6205307b705a67e45a525b5e873595c6647568621ff00e17c6e697ccdb940", kill_on_drop: false }` [INFO] [stdout] c1d6205307b705a67e45a525b5e873595c6647568621ff00e17c6e697ccdb940 [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3aeb647ba81811d6d35acfc6c54a674982cabea2bcba024462a5af0bb919a2bf [INFO] running `Command { std: "docker" "start" "-a" "3aeb647ba81811d6d35acfc6c54a674982cabea2bcba024462a5af0bb919a2bf", kill_on_drop: false }` [INFO] [stderr] Compiling twox-hash v1.6.3 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling redact-composer-derive v0.1.2 [INFO] [stderr] Compiling redact-composer-core v0.2.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/render/context/mod.rs:65:42 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn find(&self) -> CtxQuery bool> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 65 | pub fn find(&self) -> CtxQuery<'_, Element, impl Fn(&Element) -> bool> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/render/context/mod.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 104 | ) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 104 | ) -> Option>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/render/tree.rs:53:59 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn node_iter<'a>(&'a self, start: &'a Node) -> NodeIter { [INFO] [stdout] | -- -- ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | | [INFO] [stdout] | | the lifetime is named here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 53 | pub fn node_iter<'a>(&'a self, start: &'a Node) -> NodeIter<'a, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/render/tree.rs:63:87 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn node_iter_with_skip<'a>(&'a self, start: &'a Node, skip: Vec) -> NodeIter { [INFO] [stdout] | -- -- the lifetime is named here ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 63 | pub fn node_iter_with_skip<'a>(&'a self, start: &'a Node, skip: Vec) -> NodeIter<'a, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/render/tree.rs:73:17 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn iter(&self) -> NodeIter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 73 | pub fn iter(&self) -> NodeIter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.77s [INFO] running `Command { std: "docker" "inspect" "3aeb647ba81811d6d35acfc6c54a674982cabea2bcba024462a5af0bb919a2bf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3aeb647ba81811d6d35acfc6c54a674982cabea2bcba024462a5af0bb919a2bf", kill_on_drop: false }` [INFO] [stdout] 3aeb647ba81811d6d35acfc6c54a674982cabea2bcba024462a5af0bb919a2bf [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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 35f7bc11e8f30179267e81778988b2b5c951236d57585e9d93f53079a8d991ea [INFO] running `Command { std: "docker" "start" "-a" "35f7bc11e8f30179267e81778988b2b5c951236d57585e9d93f53079a8d991ea", kill_on_drop: false }` [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/render/context/mod.rs:65:42 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn find(&self) -> CtxQuery bool> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 65 | pub fn find(&self) -> CtxQuery<'_, Element, impl Fn(&Element) -> bool> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/render/context/mod.rs:100:9 [INFO] [stdout] | [INFO] [stdout] 100 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 104 | ) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 104 | ) -> Option>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling redact-composer-core v0.2.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/render/tree.rs:53:59 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn node_iter<'a>(&'a self, start: &'a Node) -> NodeIter { [INFO] [stdout] | -- -- ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | | [INFO] [stdout] | | the lifetime is named here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 53 | pub fn node_iter<'a>(&'a self, start: &'a Node) -> NodeIter<'a, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/render/tree.rs:63:87 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn node_iter_with_skip<'a>(&'a self, start: &'a Node, skip: Vec) -> NodeIter { [INFO] [stdout] | -- -- the lifetime is named here ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 63 | pub fn node_iter_with_skip<'a>(&'a self, start: &'a Node, skip: Vec) -> NodeIter<'a, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/render/tree.rs:73:17 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn iter(&self) -> NodeIter { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 73 | pub fn iter(&self) -> NodeIter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `serde` [INFO] [stdout] --> src/test.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^ use of unresolved module or unlinked crate `serde` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Composition: serde::ser::Serialize` is not satisfied [INFO] [stdout] --> src/test.rs:14:49 [INFO] [stdout] | [INFO] [stdout] 14 | let serialized_comp = serde_json::to_string(&comp).unwrap(); [INFO] [stdout] | --------------------- ^^^^^ unsatisfied trait bound [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] help: the trait `serde::ser::Serialize` is not implemented for `Composition` [INFO] [stdout] --> src/lib.rs:405:1 [INFO] [stdout] | [INFO] [stdout] 405 | pub struct Composition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for local types consider adding `#[derive(serde::Serialize)]` to your `Composition` type [INFO] [stdout] = note: for types from other crates check whether the crate offers a `serde` feature flag [INFO] [stdout] = help: the following other types implement trait `serde::ser::Serialize`: [INFO] [stdout] &'a T [INFO] [stdout] &'a mut T [INFO] [stdout] () [INFO] [stdout] (T,) [INFO] [stdout] (T0, T1) [INFO] [stdout] (T0, T1, T2) [INFO] [stdout] (T0, T1, T2, T3) [INFO] [stdout] (T0, T1, T2, T3, T4) [INFO] [stdout] and 131 others [INFO] [stdout] note: required by a bound in `serde_json::to_string` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.143/src/ser.rs:2247:17 [INFO] [stdout] | [INFO] [stdout] 2245 | pub fn to_string(value: &T) -> Result [INFO] [stdout] | --------- required by a bound in this function [INFO] [stdout] 2246 | where [INFO] [stdout] 2247 | T: ?Sized + Serialize, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `to_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Composition: serde::de::Deserialize<'_>` is not satisfied [INFO] [stdout] --> src/test.rs:22:29 [INFO] [stdout] | [INFO] [stdout] 22 | let comp: Composition = serde_json::from_str(serialized).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound [INFO] [stdout] | [INFO] [stdout] help: the trait `serde::de::Deserialize<'_>` is not implemented for `Composition` [INFO] [stdout] --> src/lib.rs:405:1 [INFO] [stdout] | [INFO] [stdout] 405 | pub struct Composition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Composition` type [INFO] [stdout] = note: for types from other crates check whether the crate offers a `serde` feature flag [INFO] [stdout] = help: the following other types implement trait `serde::de::Deserialize<'de>`: [INFO] [stdout] &'a Path [INFO] [stdout] &'a [u8] [INFO] [stdout] &'a str [INFO] [stdout] () [INFO] [stdout] (T,) [INFO] [stdout] (T0, T1) [INFO] [stdout] (T0, T1, T2) [INFO] [stdout] (T0, T1, T2, T3) [INFO] [stdout] and 142 others [INFO] [stdout] note: required by a bound in `serde_json::from_str` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.143/src/de.rs:2699:8 [INFO] [stdout] | [INFO] [stdout] 2697 | pub fn from_str<'a, T>(s: &'a str) -> Result [INFO] [stdout] | -------- required by a bound in this function [INFO] [stdout] 2698 | where [INFO] [stdout] 2699 | T: de::Deserialize<'a>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Composition: serde::ser::Serialize` is not satisfied [INFO] [stdout] --> src/test.rs:50:49 [INFO] [stdout] | [INFO] [stdout] 50 | let serialized_comp = serde_json::to_string(&comp).unwrap(); [INFO] [stdout] | --------------------- ^^^^^ unsatisfied trait bound [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] help: the trait `serde::ser::Serialize` is not implemented for `Composition` [INFO] [stdout] --> src/lib.rs:405:1 [INFO] [stdout] | [INFO] [stdout] 405 | pub struct Composition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for local types consider adding `#[derive(serde::Serialize)]` to your `Composition` type [INFO] [stdout] = note: for types from other crates check whether the crate offers a `serde` feature flag [INFO] [stdout] = help: the following other types implement trait `serde::ser::Serialize`: [INFO] [stdout] &'a T [INFO] [stdout] &'a mut T [INFO] [stdout] () [INFO] [stdout] (T,) [INFO] [stdout] (T0, T1) [INFO] [stdout] (T0, T1, T2) [INFO] [stdout] (T0, T1, T2, T3) [INFO] [stdout] (T0, T1, T2, T3, T4) [INFO] [stdout] and 131 others [INFO] [stdout] note: required by a bound in `serde_json::to_string` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.143/src/ser.rs:2247:17 [INFO] [stdout] | [INFO] [stdout] 2245 | pub fn to_string(value: &T) -> Result [INFO] [stdout] | --------- required by a bound in this function [INFO] [stdout] 2246 | where [INFO] [stdout] 2247 | T: ?Sized + Serialize, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `to_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Composition: serde::de::Deserialize<'_>` is not satisfied [INFO] [stdout] --> src/test.rs:52:42 [INFO] [stdout] | [INFO] [stdout] 52 | let deserialized_comp: Composition = serde_json::from_str(serialized_comp.as_str()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound [INFO] [stdout] | [INFO] [stdout] help: the trait `serde::de::Deserialize<'_>` is not implemented for `Composition` [INFO] [stdout] --> src/lib.rs:405:1 [INFO] [stdout] | [INFO] [stdout] 405 | pub struct Composition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for local types consider adding `#[derive(serde::Deserialize)]` to your `Composition` type [INFO] [stdout] = note: for types from other crates check whether the crate offers a `serde` feature flag [INFO] [stdout] = help: the following other types implement trait `serde::de::Deserialize<'de>`: [INFO] [stdout] &'a Path [INFO] [stdout] &'a [u8] [INFO] [stdout] &'a str [INFO] [stdout] () [INFO] [stdout] (T,) [INFO] [stdout] (T0, T1) [INFO] [stdout] (T0, T1, T2) [INFO] [stdout] (T0, T1, T2, T3) [INFO] [stdout] and 142 others [INFO] [stdout] note: required by a bound in `serde_json::from_str` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.143/src/de.rs:2699:8 [INFO] [stdout] | [INFO] [stdout] 2697 | pub fn from_str<'a, T>(s: &'a str) -> Result [INFO] [stdout] | -------- required by a bound in this function [INFO] [stdout] 2698 | where [INFO] [stdout] 2699 | T: de::Deserialize<'a>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ required by this bound in `from_str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `Composition: serde::ser::Serialize` is not satisfied [INFO] [stdout] --> src/test.rs:56:31 [INFO] [stdout] | [INFO] [stdout] 56 | serde_json::to_string(&deserialized_comp).unwrap() [INFO] [stdout] | --------------------- ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] help: the trait `serde::ser::Serialize` is not implemented for `Composition` [INFO] [stdout] --> src/lib.rs:405:1 [INFO] [stdout] | [INFO] [stdout] 405 | pub struct Composition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: for local types consider adding `#[derive(serde::Serialize)]` to your `Composition` type [INFO] [stdout] = note: for types from other crates check whether the crate offers a `serde` feature flag [INFO] [stdout] = help: the following other types implement trait `serde::ser::Serialize`: [INFO] [stdout] &'a T [INFO] [stdout] &'a mut T [INFO] [stdout] () [INFO] [stdout] (T,) [INFO] [stdout] (T0, T1) [INFO] [stdout] (T0, T1, T2) [INFO] [stdout] (T0, T1, T2, T3) [INFO] [stdout] (T0, T1, T2, T3, T4) [INFO] [stdout] and 131 others [INFO] [stdout] note: required by a bound in `serde_json::to_string` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.143/src/ser.rs:2247:17 [INFO] [stdout] | [INFO] [stdout] 2245 | pub fn to_string(value: &T) -> Result [INFO] [stdout] | --------- required by a bound in this function [INFO] [stdout] 2246 | where [INFO] [stdout] 2247 | T: ?Sized + Serialize, [INFO] [stdout] | ^^^^^^^^^ required by this bound in `to_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0432. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `redact-composer-core` (lib test) due to 6 previous errors [INFO] running `Command { std: "docker" "inspect" "35f7bc11e8f30179267e81778988b2b5c951236d57585e9d93f53079a8d991ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "35f7bc11e8f30179267e81778988b2b5c951236d57585e9d93f53079a8d991ea", kill_on_drop: false }` [INFO] [stdout] 35f7bc11e8f30179267e81778988b2b5c951236d57585e9d93f53079a8d991ea