[INFO] fetching crate bluerobotics-ping 0.3.0... [INFO] checking bluerobotics-ping-0.3.0 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] extracting crate bluerobotics-ping 0.3.0 into /workspace/builds/worker-0-tc1/source [INFO] validating manifest of crates.io crate bluerobotics-ping 0.3.0 on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate bluerobotics-ping 0.3.0 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate bluerobotics-ping 0.3.0 [INFO] tweaked toml for crates.io crate bluerobotics-ping 0.3.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] crate crates.io crate bluerobotics-ping 0.3.0 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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tracing-test v0.2.5 [INFO] [stderr] Downloaded udp-stream v0.0.12 [INFO] [stderr] Downloaded io-kit-sys v0.4.1 [INFO] [stderr] Downloaded tracing-test-macro v0.2.5 [INFO] [stderr] Downloaded mio-serial v5.0.5 [INFO] [stderr] Downloaded tokio-serial v5.4.4 [INFO] [stderr] Downloaded clap_derive v4.5.11 [INFO] [stderr] Downloaded convert_case v0.6.0 [INFO] [stderr] Downloaded clap v4.5.11 [INFO] [stderr] Downloaded serialport v4.4.0 [INFO] [stderr] Downloaded clap_builder v4.5.11 [INFO] [stderr] Downloaded serde_json v1.0.121 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f1277b2ee5a97e2bddc22bb72bb704051e64e9b8b2c929dbf2e4a484ad38d38e [INFO] running `Command { std: "docker" "start" "-a" "f1277b2ee5a97e2bddc22bb72bb704051e64e9b8b2c929dbf2e4a484ad38d38e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f1277b2ee5a97e2bddc22bb72bb704051e64e9b8b2c929dbf2e4a484ad38d38e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1277b2ee5a97e2bddc22bb72bb704051e64e9b8b2c929dbf2e4a484ad38d38e", kill_on_drop: false }` [INFO] [stdout] f1277b2ee5a97e2bddc22bb72bb704051e64e9b8b2c929dbf2e4a484ad38d38e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ec94d3d6ac7da7f9ad45c13280e7a1c1a76434ec5ae5f7a096ee189ca38d4509 [INFO] running `Command { std: "docker" "start" "-a" "ec94d3d6ac7da7f9ad45c13280e7a1c1a76434ec5ae5f7a096ee189ca38d4509", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling serde v1.0.204 [INFO] [stderr] Compiling memoffset v0.7.1 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling serde_json v1.0.121 [INFO] [stderr] Checking bytes v1.6.1 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Checking anstyle-parse v0.2.5 [INFO] [stderr] Checking lock_api v0.4.12 [INFO] [stderr] Checking anstyle-query v1.1.1 [INFO] [stderr] Compiling unicode-segmentation v1.11.0 [INFO] [stderr] Checking is_terminal_polyfill v1.70.1 [INFO] [stderr] Checking anstyle v1.0.8 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking colorchoice v1.0.2 [INFO] [stderr] Checking clap_lex v0.7.2 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking anstream v0.6.15 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Compiling convert_case v0.6.0 [INFO] [stderr] Checking clap_builder v4.5.11 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking mio v1.0.1 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking regex v1.10.5 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling serde_derive v1.0.204 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling clap_derive v4.5.11 [INFO] [stderr] Compiling tracing-test-macro v0.2.5 [INFO] [stderr] Checking tokio v1.39.2 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking thiserror v1.0.63 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking unescaper v0.1.5 [INFO] [stderr] Checking serialport v4.4.0 [INFO] [stderr] Checking clap v4.5.11 [INFO] [stderr] Checking mio-serial v5.0.5 [INFO] [stderr] Checking tracing-test v0.2.5 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking tokio-serial v5.4.4 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Checking udp-stream v0.0.12 [INFO] [stderr] Compiling bluerobotics-ping v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping1d.rs:1:21705 [INFO] [stdout] | [INFO] [stdout] 1 | ...erStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [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: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping1d.rs:1:21833 [INFO] [stdout] | [INFO] [stdout] 1 | ...derStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for GotoBootloaderStruct { fn id () -> u16 { 110... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [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] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping1d.rs:1:21705 [INFO] [stdout] | [INFO] [stdout] 1 | ...erStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [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: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping1d.rs:1:21833 [INFO] [stdout] | [INFO] [stdout] 1 | ...derStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for GotoBootloaderStruct { fn id () -> u16 { 110... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [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] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping360.rs:1:2796 [INFO] [stdout] | [INFO] [stdout] 1 | ...ffStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping360.rs:1:2918 [INFO] [stdout] | [INFO] [stdout] 1 | ...OffStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for MotorOffStruct { fn id () -> u16 { 2903u16 }... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping360.rs:1:2796 [INFO] [stdout] | [INFO] [stdout] 1 | ...ffStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/ping360.rs:1:2918 [INFO] [stdout] | [INFO] [stdout] 1 | ...OffStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for MotorOffStruct { fn id () -> u16 { 2903u16 }... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:7644 [INFO] [stdout] | [INFO] [stdout] 1 | ...tsStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:7771 [INFO] [stdout] | [INFO] [stdout] 1 | ...ltsStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for ResetDefaultsStruct { fn id () -> u16 { 9202... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:7644 [INFO] [stdout] | [INFO] [stdout] 1 | ...tsStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:7771 [INFO] [stdout] | [INFO] [stdout] 1 | ...ltsStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for ResetDefaultsStruct { fn id () -> u16 { 9202... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:16221 [INFO] [stdout] | [INFO] [stdout] 1 | ...shStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:16345 [INFO] [stdout] | [INFO] [stdout] 1 | ...ashStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for EraseFlashStruct { fn id () -> u16 { 9201u16... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:16221 [INFO] [stdout] | [INFO] [stdout] 1 | ...shStruct { fn serialize (& self) -> Vec < u8 > { let mut buffer : Vec < u8 > = Default :: default () ; buffer } } impl DeserializePayl... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> /opt/rustwide/target/debug/build/bluerobotics-ping-b8ea7ecb571adcf0/out/bluebps.rs:1:16345 [INFO] [stdout] | [INFO] [stdout] 1 | ...ashStruct { fn deserialize (payload : & [u8]) -> Self { Self { } } } impl MessageInfo for EraseFlashStruct { fn id () -> u16 { 9201u16... [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | async fn send_general_request(&self, requested_id: u16) -> Result<(), PingError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 104 ~ fn send_general_request(&self, requested_id: u16) -> impl std::future::Future> + Send {async { [INFO] [stdout] 105 | let request = [INFO] [stdout] ... [INFO] [stdout] 114 | Ok(()) [INFO] [stdout] 115 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | async fn wait_for_message( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 117 ~ fn wait_for_message( [INFO] [stdout] 118 | &self, [INFO] [stdout] 119 | mut receiver: tokio::sync::broadcast::Receiver, [INFO] [stdout] 120 ~ ) -> impl std::future::Future> + Send [INFO] [stdout] 121 | where [INFO] [stdout] 122 | T: crate::message::MessageInfo + std::marker::Sync + Clone + std::marker::Send, [INFO] [stdout] 123 ~ {async { [INFO] [stdout] 124 | let future = async move { [INFO] [stdout] ... [INFO] [stdout] 144 | } [INFO] [stdout] 145 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | async fn wait_for_ack( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 147 ~ fn wait_for_ack( [INFO] [stdout] 148 | &self, [INFO] [stdout] 149 | mut receiver: tokio::sync::broadcast::Receiver, [INFO] [stdout] 150 | message_id: u16, [INFO] [stdout] 151 ~ ) -> impl std::future::Future> + Send {async { [INFO] [stdout] 152 | let future = async move { [INFO] [stdout] ... [INFO] [stdout] 186 | } [INFO] [stdout] 187 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | async fn request(&self) -> Result [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 189 ~ fn request(&self) -> impl std::future::Future> + Send [INFO] [stdout] 190 | where [INFO] [stdout] 191 | T: crate::message::MessageInfo + std::marker::Sync + Clone + std::marker::Send, [INFO] [stdout] 192 ~ {async { [INFO] [stdout] 193 | let receiver = self.subscribe(); [INFO] [stdout] ... [INFO] [stdout] 197 | self.wait_for_message(receiver).await [INFO] [stdout] 198 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:201:5 [INFO] [stdout] | [INFO] [stdout] 201 | async fn device_information(&self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 201 ~ fn device_information(&self) -> impl std::future::Future> + Send {async { [INFO] [stdout] 202 | self.request().await [INFO] [stdout] 203 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | async fn protocol_version(&self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 205 ~ fn protocol_version(&self) -> impl std::future::Future> + Send {async { [INFO] [stdout] 206 | self.request().await [INFO] [stdout] 207 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | async fn set_device_id(&self, device_id: u8) -> Result<(), PingError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 211 ~ fn set_device_id(&self, device_id: u8) -> impl std::future::Future> + Send {async { [INFO] [stdout] 212 | let request = common::Messages::SetDeviceId(common::SetDeviceIdStruct { device_id }); [INFO] [stdout] ... [INFO] [stdout] 218 | .await [INFO] [stdout] 219 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | async fn send_general_request(&self, requested_id: u16) -> Result<(), PingError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 104 ~ fn send_general_request(&self, requested_id: u16) -> impl std::future::Future> + Send {async { [INFO] [stdout] 105 | let request = [INFO] [stdout] ... [INFO] [stdout] 114 | Ok(()) [INFO] [stdout] 115 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | async fn wait_for_message( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 117 ~ fn wait_for_message( [INFO] [stdout] 118 | &self, [INFO] [stdout] 119 | mut receiver: tokio::sync::broadcast::Receiver, [INFO] [stdout] 120 ~ ) -> impl std::future::Future> + Send [INFO] [stdout] 121 | where [INFO] [stdout] 122 | T: crate::message::MessageInfo + std::marker::Sync + Clone + std::marker::Send, [INFO] [stdout] 123 ~ {async { [INFO] [stdout] 124 | let future = async move { [INFO] [stdout] ... [INFO] [stdout] 144 | } [INFO] [stdout] 145 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | async fn wait_for_ack( [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 147 ~ fn wait_for_ack( [INFO] [stdout] 148 | &self, [INFO] [stdout] 149 | mut receiver: tokio::sync::broadcast::Receiver, [INFO] [stdout] 150 | message_id: u16, [INFO] [stdout] 151 ~ ) -> impl std::future::Future> + Send {async { [INFO] [stdout] 152 | let future = async move { [INFO] [stdout] ... [INFO] [stdout] 186 | } [INFO] [stdout] 187 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | async fn request(&self) -> Result [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 189 ~ fn request(&self) -> impl std::future::Future> + Send [INFO] [stdout] 190 | where [INFO] [stdout] 191 | T: crate::message::MessageInfo + std::marker::Sync + Clone + std::marker::Send, [INFO] [stdout] 192 ~ {async { [INFO] [stdout] 193 | let receiver = self.subscribe(); [INFO] [stdout] ... [INFO] [stdout] 197 | self.wait_for_message(receiver).await [INFO] [stdout] 198 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:201:5 [INFO] [stdout] | [INFO] [stdout] 201 | async fn device_information(&self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 201 ~ fn device_information(&self) -> impl std::future::Future> + Send {async { [INFO] [stdout] 202 | self.request().await [INFO] [stdout] 203 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | async fn protocol_version(&self) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 205 ~ fn protocol_version(&self) -> impl std::future::Future> + Send {async { [INFO] [stdout] 206 | self.request().await [INFO] [stdout] 207 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/device.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 211 | async fn set_device_id(&self, device_id: u8) -> Result<(), PingError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 211 ~ fn set_device_id(&self, device_id: u8) -> impl std::future::Future> + Send {async { [INFO] [stdout] 212 | let request = common::Messages::SetDeviceId(common::SetDeviceIdStruct { device_id }); [INFO] [stdout] ... [INFO] [stdout] 218 | .await [INFO] [stdout] 219 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 15 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 15 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `sleep` [INFO] [stdout] --> tests/async_codec.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio::time::{sleep, Duration}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.86s [INFO] running `Command { std: "docker" "inspect" "ec94d3d6ac7da7f9ad45c13280e7a1c1a76434ec5ae5f7a096ee189ca38d4509", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ec94d3d6ac7da7f9ad45c13280e7a1c1a76434ec5ae5f7a096ee189ca38d4509", kill_on_drop: false }` [INFO] [stdout] ec94d3d6ac7da7f9ad45c13280e7a1c1a76434ec5ae5f7a096ee189ca38d4509