[INFO] cloning repository https://github.com/PixelboysTM/marvrpc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PixelboysTM/marvrpc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPixelboysTM%2Fmarvrpc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPixelboysTM%2Fmarvrpc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8fcbdf81d55032e6a64e6ad95c66275470168b62 [INFO] testing PixelboysTM/marvrpc against try#16fbf98f22730e073c09e7b03f0eafb87a295545 for pr-145628-retry-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPixelboysTM%2Fmarvrpc" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/PixelboysTM/marvrpc [INFO] finished tweaking git repo https://github.com/PixelboysTM/marvrpc [INFO] tweaked toml for git repo https://github.com/PixelboysTM/marvrpc written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/PixelboysTM/marvrpc on toolchain 16fbf98f22730e073c09e7b03f0eafb87a295545 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/PixelboysTM/marvrpc 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" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 40fc31c28aaf6fc46429ac0f93027bc330fa7cc15b1aa4ef3c608a4aa64606c8 [INFO] running `Command { std: "docker" "start" "-a" "40fc31c28aaf6fc46429ac0f93027bc330fa7cc15b1aa4ef3c608a4aa64606c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "40fc31c28aaf6fc46429ac0f93027bc330fa7cc15b1aa4ef3c608a4aa64606c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "40fc31c28aaf6fc46429ac0f93027bc330fa7cc15b1aa4ef3c608a4aa64606c8", kill_on_drop: false }` [INFO] [stdout] 40fc31c28aaf6fc46429ac0f93027bc330fa7cc15b1aa4ef3c608a4aa64606c8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+16fbf98f22730e073c09e7b03f0eafb87a295545" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 848831d56b9c13822a198a509361d71ae0de70f25aeea05fe357302da279a4e3 [INFO] running `Command { std: "docker" "start" "-a" "848831d56b9c13822a198a509361d71ae0de70f25aeea05fe357302da279a4e3", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.16 [INFO] [stderr] Compiling serde v1.0.217 [INFO] [stderr] Compiling serde_json v1.0.138 [INFO] [stderr] Compiling ryu v1.0.19 [INFO] [stderr] Compiling bytes v1.9.0 [INFO] [stderr] Compiling itoa v1.0.14 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling tokio v1.43.0 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Compiling syn v2.0.98 [INFO] [stderr] Compiling marvrpc-macros v0.1.0 (/opt/rustwide/workdir/marvrpc-macros) [INFO] [stdout] warning: field `attrs` is never read [INFO] [stdout] --> marvrpc-macros/src/lib.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 35 | struct Service { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 36 | attrs: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling marvrpc v0.1.0 (/opt/rustwide/workdir/marvrpc) [INFO] [stdout] error[E0277]: `R` cannot be unpinned [INFO] [stdout] --> marvrpc/src/lib.rs:16:39 [INFO] [stdout] | [INFO] [stdout] 16 | tokio::io::AsyncReadExt::read(self, buf).await [INFO] [stdout] | ----------------------------- ^^^^ the trait `Unpin` is not implemented for `R` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: consider using the `pin!` macro [INFO] [stdout] consider using `Box::pin` if you need to access the pinned value outside of the current scope [INFO] [stdout] note: required by a bound in `tokio::io::AsyncReadExt::read` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/io/util/async_read_ext.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 168 | fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self> [INFO] [stdout] | ---- required by a bound in this associated function [INFO] [stdout] 169 | where [INFO] [stdout] 170 | Self: Unpin, [INFO] [stdout] | ^^^^^ required by this bound in `AsyncReadExt::read` [INFO] [stdout] help: consider further restricting type parameter `R` with trait `Unpin` [INFO] [stdout] | [INFO] [stdout] 11 | R: tokio::io::AsyncRead + std::marker::Unpin, [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `R` cannot be unpinned [INFO] [stdout] --> marvrpc/src/lib.rs:16:50 [INFO] [stdout] | [INFO] [stdout] 16 | tokio::io::AsyncReadExt::read(self, buf).await [INFO] [stdout] | ---------------------------------------- ^^^^^ the trait `Unpin` is not implemented for `R` [INFO] [stdout] | | [INFO] [stdout] | this call returns `R` [INFO] [stdout] | [INFO] [stdout] = note: consider using the `pin!` macro [INFO] [stdout] consider using `Box::pin` if you need to access the pinned value outside of the current scope [INFO] [stdout] = note: required for `tokio::io::util::read::Read<'_, R>` to implement `Future` [INFO] [stdout] = note: required for `tokio::io::util::read::Read<'_, R>` to implement `IntoFuture` [INFO] [stdout] help: remove the `.await` [INFO] [stdout] | [INFO] [stdout] 16 - tokio::io::AsyncReadExt::read(self, buf).await [INFO] [stdout] 16 + tokio::io::AsyncReadExt::read(self, buf) [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `R` with trait `Unpin` [INFO] [stdout] | [INFO] [stdout] 11 | R: tokio::io::AsyncRead + std::marker::Unpin, [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `W` cannot be unpinned [INFO] [stdout] --> marvrpc/src/lib.rs:31:41 [INFO] [stdout] | [INFO] [stdout] 31 | tokio::io::AsyncWriteExt::write(self, buf).await [INFO] [stdout] | ------------------------------- ^^^^ the trait `Unpin` is not implemented for `W` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] = note: consider using the `pin!` macro [INFO] [stdout] consider using `Box::pin` if you need to access the pinned value outside of the current scope [INFO] [stdout] note: required by a bound in `tokio::io::AsyncWriteExt::write` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.43.0/src/io/util/async_write_ext.rs:126:19 [INFO] [stdout] | [INFO] [stdout] 124 | fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self> [INFO] [stdout] | ----- required by a bound in this associated function [INFO] [stdout] 125 | where [INFO] [stdout] 126 | Self: Unpin, [INFO] [stdout] | ^^^^^ required by this bound in `AsyncWriteExt::write` [INFO] [stdout] help: consider further restricting type parameter `W` with trait `Unpin` [INFO] [stdout] | [INFO] [stdout] 27 | W: tokio::io::AsyncWrite + std::marker::Unpin, [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `W` cannot be unpinned [INFO] [stdout] --> marvrpc/src/lib.rs:31:52 [INFO] [stdout] | [INFO] [stdout] 31 | tokio::io::AsyncWriteExt::write(self, buf).await [INFO] [stdout] | ------------------------------------------ ^^^^^ the trait `Unpin` is not implemented for `W` [INFO] [stdout] | | [INFO] [stdout] | this call returns `W` [INFO] [stdout] | [INFO] [stdout] = note: consider using the `pin!` macro [INFO] [stdout] consider using `Box::pin` if you need to access the pinned value outside of the current scope [INFO] [stdout] = note: required for `tokio::io::util::write::Write<'_, W>` to implement `Future` [INFO] [stdout] = note: required for `tokio::io::util::write::Write<'_, W>` to implement `IntoFuture` [INFO] [stdout] help: remove the `.await` [INFO] [stdout] | [INFO] [stdout] 31 - tokio::io::AsyncWriteExt::write(self, buf).await [INFO] [stdout] 31 + tokio::io::AsyncWriteExt::write(self, buf) [INFO] [stdout] | [INFO] [stdout] help: consider further restricting type parameter `W` with trait `Unpin` [INFO] [stdout] | [INFO] [stdout] 27 | W: tokio::io::AsyncWrite + std::marker::Unpin, [INFO] [stdout] | ++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `data` does not live long enough [INFO] [stdout] --> marvrpc/src/lib.rs:81:27 [INFO] [stdout] | [INFO] [stdout] 66 | let data = { [INFO] [stdout] | ---- binding `data` declared here [INFO] [stdout] ... [INFO] [stdout] 81 | Ok(RM::from_bytes(&data)) [INFO] [stdout] | ---------------^^^^^- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `data` is borrowed for `'static` [INFO] [stdout] 82 | } [INFO] [stdout] | - `data` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: type mismatch resolving `::Error == ::Error` [INFO] [stdout] --> marvrpc/src/lib.rs:90:43 [INFO] [stdout] | [INFO] [stdout] 90 | self.write(msg).await.map_err(|e| ExchangeError::Write(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ type mismatch resolving `::Error == ::Error` [INFO] [stdout] | [INFO] [stdout] note: expected this to be `::Error` [INFO] [stdout] --> marvrpc/src/lib.rs:29:18 [INFO] [stdout] | [INFO] [stdout] 29 | type Error = std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected associated type `::Error` [INFO] [stdout] found struct `std::io::Error` [INFO] [stdout] = help: consider constraining the associated type `::Error` to `std::io::Error` [INFO] [stdout] = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `RM: RPCRead` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:90:43 [INFO] [stdout] | [INFO] [stdout] 90 | self.write(msg).await.map_err(|e| ExchangeError::Write(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncRead` is not implemented for `RM` [INFO] [stdout] | [INFO] [stdout] note: required for `RM` to implement `RPCRead` [INFO] [stdout] --> marvrpc/src/lib.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | impl RPCRead for R [INFO] [stdout] | ^^^^^^^ ^ [INFO] [stdout] 10 | where [INFO] [stdout] 11 | R: tokio::io::AsyncRead, [INFO] [stdout] | -------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError::Write` [INFO] [stdout] --> marvrpc/src/lib.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^ required by this bound in `ExchangeError::Write` [INFO] [stdout] 96 | Read(R::Error), [INFO] [stdout] 97 | Write(W::Error), [INFO] [stdout] | ----- required by a bound in this tuple variant [INFO] [stdout] help: consider further restricting type parameter `RM` with trait `AsyncRead` [INFO] [stdout] | [INFO] [stdout] 52 | impl + tokio::io::AsyncRead, WM: RpcMsg<'static>> [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `WM: RPCWrite` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:90:43 [INFO] [stdout] | [INFO] [stdout] 90 | self.write(msg).await.map_err(|e| ExchangeError::Write(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncWrite` is not implemented for `WM` [INFO] [stdout] | [INFO] [stdout] note: required for `WM` to implement `RPCWrite` [INFO] [stdout] --> marvrpc/src/lib.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | impl RPCWrite for W [INFO] [stdout] | ^^^^^^^^ ^ [INFO] [stdout] 26 | where [INFO] [stdout] 27 | W: tokio::io::AsyncWrite, [INFO] [stdout] | --------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError::Write` [INFO] [stdout] --> marvrpc/src/lib.rs:95:39 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^^ required by this bound in `ExchangeError::Write` [INFO] [stdout] 96 | Read(R::Error), [INFO] [stdout] 97 | Write(W::Error), [INFO] [stdout] | ----- required by a bound in this tuple variant [INFO] [stdout] help: consider further restricting type parameter `WM` with trait `AsyncWrite` [INFO] [stdout] | [INFO] [stdout] 52 | impl, WM: RpcMsg<'static> + tokio::io::AsyncWrite> [INFO] [stdout] | +++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `RM: AsyncRead` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | self.write(msg).await.map_err(|e| ExchangeError::Write(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncRead` is not implemented for `RM` [INFO] [stdout] | [INFO] [stdout] note: required for `RM` to implement `RPCRead` [INFO] [stdout] --> marvrpc/src/lib.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | impl RPCRead for R [INFO] [stdout] | ^^^^^^^ ^ [INFO] [stdout] 10 | where [INFO] [stdout] 11 | R: tokio::io::AsyncRead, [INFO] [stdout] | -------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError` [INFO] [stdout] --> marvrpc/src/lib.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^ required by this bound in `ExchangeError` [INFO] [stdout] help: consider further restricting type parameter `RM` with trait `AsyncRead` [INFO] [stdout] | [INFO] [stdout] 52 | impl + tokio::io::AsyncRead, WM: RpcMsg<'static>> [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `WM: AsyncWrite` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | self.write(msg).await.map_err(|e| ExchangeError::Write(e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncWrite` is not implemented for `WM` [INFO] [stdout] | [INFO] [stdout] note: required for `WM` to implement `RPCWrite` [INFO] [stdout] --> marvrpc/src/lib.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | impl RPCWrite for W [INFO] [stdout] | ^^^^^^^^ ^ [INFO] [stdout] 26 | where [INFO] [stdout] 27 | W: tokio::io::AsyncWrite, [INFO] [stdout] | --------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError` [INFO] [stdout] --> marvrpc/src/lib.rs:95:39 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^^ required by this bound in `ExchangeError` [INFO] [stdout] help: consider further restricting type parameter `WM` with trait `AsyncWrite` [INFO] [stdout] | [INFO] [stdout] 52 | impl, WM: RpcMsg<'static> + tokio::io::AsyncWrite> [INFO] [stdout] | +++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0271]: type mismatch resolving `::Error == ::Error` [INFO] [stdout] --> marvrpc/src/lib.rs:91:39 [INFO] [stdout] | [INFO] [stdout] 91 | self.read().await.map_err(|e| ExchangeError::Read(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ type mismatch resolving `::Error == ::Error` [INFO] [stdout] | [INFO] [stdout] note: expected this to be `::Error` [INFO] [stdout] --> marvrpc/src/lib.rs:13:18 [INFO] [stdout] | [INFO] [stdout] 13 | type Error = std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected associated type `::Error` [INFO] [stdout] found struct `std::io::Error` [INFO] [stdout] = help: consider constraining the associated type `::Error` to `std::io::Error` [INFO] [stdout] = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `RM: RPCRead` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:91:39 [INFO] [stdout] | [INFO] [stdout] 91 | self.read().await.map_err(|e| ExchangeError::Read(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncRead` is not implemented for `RM` [INFO] [stdout] | [INFO] [stdout] note: required for `RM` to implement `RPCRead` [INFO] [stdout] --> marvrpc/src/lib.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | impl RPCRead for R [INFO] [stdout] | ^^^^^^^ ^ [INFO] [stdout] 10 | where [INFO] [stdout] 11 | R: tokio::io::AsyncRead, [INFO] [stdout] | -------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError::Read` [INFO] [stdout] --> marvrpc/src/lib.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^ required by this bound in `ExchangeError::Read` [INFO] [stdout] 96 | Read(R::Error), [INFO] [stdout] | ---- required by a bound in this tuple variant [INFO] [stdout] help: consider further restricting type parameter `RM` with trait `AsyncRead` [INFO] [stdout] | [INFO] [stdout] 52 | impl + tokio::io::AsyncRead, WM: RpcMsg<'static>> [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `WM: RPCWrite` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:91:39 [INFO] [stdout] | [INFO] [stdout] 91 | self.read().await.map_err(|e| ExchangeError::Read(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncWrite` is not implemented for `WM` [INFO] [stdout] | [INFO] [stdout] note: required for `WM` to implement `RPCWrite` [INFO] [stdout] --> marvrpc/src/lib.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | impl RPCWrite for W [INFO] [stdout] | ^^^^^^^^ ^ [INFO] [stdout] 26 | where [INFO] [stdout] 27 | W: tokio::io::AsyncWrite, [INFO] [stdout] | --------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError::Read` [INFO] [stdout] --> marvrpc/src/lib.rs:95:39 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^^ required by this bound in `ExchangeError::Read` [INFO] [stdout] 96 | Read(R::Error), [INFO] [stdout] | ---- required by a bound in this tuple variant [INFO] [stdout] help: consider further restricting type parameter `WM` with trait `AsyncWrite` [INFO] [stdout] | [INFO] [stdout] 52 | impl, WM: RpcMsg<'static> + tokio::io::AsyncWrite> [INFO] [stdout] | +++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `RM: AsyncRead` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | pub async fn exchange(&mut self, msg: WM) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncRead` is not implemented for `RM` [INFO] [stdout] | [INFO] [stdout] note: required for `RM` to implement `RPCRead` [INFO] [stdout] --> marvrpc/src/lib.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | impl RPCRead for R [INFO] [stdout] | ^^^^^^^ ^ [INFO] [stdout] 10 | where [INFO] [stdout] 11 | R: tokio::io::AsyncRead, [INFO] [stdout] | -------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError` [INFO] [stdout] --> marvrpc/src/lib.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^ required by this bound in `ExchangeError` [INFO] [stdout] help: consider further restricting type parameter `RM` with trait `AsyncRead` [INFO] [stdout] | [INFO] [stdout] 52 | impl + tokio::io::AsyncRead, WM: RpcMsg<'static>> [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `WM: AsyncWrite` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | pub async fn exchange(&mut self, msg: WM) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `AsyncWrite` is not implemented for `WM` [INFO] [stdout] | [INFO] [stdout] note: required for `WM` to implement `RPCWrite` [INFO] [stdout] --> marvrpc/src/lib.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | impl RPCWrite for W [INFO] [stdout] | ^^^^^^^^ ^ [INFO] [stdout] 26 | where [INFO] [stdout] 27 | W: tokio::io::AsyncWrite, [INFO] [stdout] | --------------------- unsatisfied trait bound introduced here [INFO] [stdout] note: required by a bound in `ExchangeError` [INFO] [stdout] --> marvrpc/src/lib.rs:95:39 [INFO] [stdout] | [INFO] [stdout] 95 | pub enum ExchangeError { [INFO] [stdout] | ^^^^^^^^ required by this bound in `ExchangeError` [INFO] [stdout] help: consider further restricting type parameter `WM` with trait `AsyncWrite` [INFO] [stdout] | [INFO] [stdout] 52 | impl, WM: RpcMsg<'static> + tokio::io::AsyncWrite> [INFO] [stdout] | +++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `WM: AsyncWrite` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:90:64 [INFO] [stdout] | [INFO] [stdout] 90 | self.write(msg).await.map_err(|e| ExchangeError::Write(e))?; [INFO] [stdout] | ^ the trait `AsyncWrite` is not implemented for `WM` [INFO] [stdout] | [INFO] [stdout] note: required for `WM` to implement `RPCWrite` [INFO] [stdout] --> marvrpc/src/lib.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | impl RPCWrite for W [INFO] [stdout] | ^^^^^^^^ ^ [INFO] [stdout] 26 | where [INFO] [stdout] 27 | W: tokio::io::AsyncWrite, [INFO] [stdout] | --------------------- unsatisfied trait bound introduced here [INFO] [stdout] help: consider further restricting type parameter `WM` with trait `AsyncWrite` [INFO] [stdout] | [INFO] [stdout] 52 | impl, WM: RpcMsg<'static> + tokio::io::AsyncWrite> [INFO] [stdout] | +++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `RM: AsyncRead` is not satisfied [INFO] [stdout] --> marvrpc/src/lib.rs:91:59 [INFO] [stdout] | [INFO] [stdout] 91 | self.read().await.map_err(|e| ExchangeError::Read(e)) [INFO] [stdout] | ^ the trait `AsyncRead` is not implemented for `RM` [INFO] [stdout] | [INFO] [stdout] note: required for `RM` to implement `RPCRead` [INFO] [stdout] --> marvrpc/src/lib.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | impl RPCRead for R [INFO] [stdout] | ^^^^^^^ ^ [INFO] [stdout] 10 | where [INFO] [stdout] 11 | R: tokio::io::AsyncRead, [INFO] [stdout] | -------------------- unsatisfied trait bound introduced here [INFO] [stdout] help: consider further restricting type parameter `RM` with trait `AsyncRead` [INFO] [stdout] | [INFO] [stdout] 52 | impl + tokio::io::AsyncRead, WM: RpcMsg<'static>> [INFO] [stdout] | ++++++++++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0271, E0277, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0271`. [INFO] [stdout] [INFO] [stderr] error: could not compile `marvrpc` (lib) due to 17 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "848831d56b9c13822a198a509361d71ae0de70f25aeea05fe357302da279a4e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "848831d56b9c13822a198a509361d71ae0de70f25aeea05fe357302da279a4e3", kill_on_drop: false }` [INFO] [stdout] 848831d56b9c13822a198a509361d71ae0de70f25aeea05fe357302da279a4e3