[INFO] fetching crate buttplug 9.0.9... [INFO] checking buttplug-9.0.9 against try#95813608313bff49cfc1afc393a946a3c085b772 for pr-148946 [INFO] extracting crate buttplug 9.0.9 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate buttplug 9.0.9 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate buttplug 9.0.9 [INFO] tweaked toml for crates.io crate buttplug 9.0.9 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate buttplug 9.0.9 on toolchain 95813608313bff49cfc1afc393a946a3c085b772 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate buttplug 9.0.9 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" "+95813608313bff49cfc1afc393a946a3c085b772" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e831a0df0824c90a90e265d417ef1e7e4120983bf73ead77e2aa6c678b08ec8d [INFO] running `Command { std: "docker" "start" "-a" "e831a0df0824c90a90e265d417ef1e7e4120983bf73ead77e2aa6c678b08ec8d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e831a0df0824c90a90e265d417ef1e7e4120983bf73ead77e2aa6c678b08ec8d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e831a0df0824c90a90e265d417ef1e7e4120983bf73ead77e2aa6c678b08ec8d", kill_on_drop: false }` [INFO] [stdout] e831a0df0824c90a90e265d417ef1e7e4120983bf73ead77e2aa6c678b08ec8d [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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 73bca5f2877771257ba19963ca3c359ed0c8be01da65de39dc4a506dac7992a9 [INFO] running `Command { std: "docker" "start" "-a" "73bca5f2877771257ba19963ca3c359ed0c8be01da65de39dc4a506dac7992a9", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Compiling cc v1.2.30 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling libdbus-sys v0.2.5 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling rustls v0.23.29 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking block-padding v0.3.3 [INFO] [stderr] Compiling libudev-sys v0.1.4 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Checking xml-rs v0.8.27 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling hidapi v2.6.3 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling cfg-if v1.0.1 [INFO] [stderr] Checking data-encoding v2.9.0 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking fraction v0.15.3 [INFO] [stderr] Checking libudev v0.3.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Checking num-cmp v0.1.0 [INFO] [stderr] Checking bytecount v0.6.9 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking ecb v0.1.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling test-case-core v3.3.1 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Checking tokio v1.46.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Checking rustls-webpki v0.103.4 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling ref-cast-impl v1.0.24 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Checking ref-cast v1.0.24 [INFO] [stderr] Checking unescaper v0.1.6 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking fancy-regex v0.14.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling prost-derive v0.13.5 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking tracing-futures v0.2.5 [INFO] [stderr] Checking serialport v4.7.2 [INFO] [stderr] Checking dbus v0.9.7 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking hyper-util v0.1.15 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking tokio-rustls v0.26.2 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Checking prost v0.13.5 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Compiling test-case-macros v3.3.1 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling buttplug_derive v0.8.1 [INFO] [stderr] Compiling getset v0.1.6 [INFO] [stderr] Checking bluez-generated v0.4.0 [INFO] [stderr] Checking dbus-tokio v0.7.6 [INFO] [stderr] Checking tungstenite v0.26.2 [INFO] [stderr] Checking test-case v3.3.1 [INFO] [stderr] Checking tokio-test v0.4.4 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking serde_json v1.0.141 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking fluent-uri v0.3.2 [INFO] [stderr] Checking serde-xml-rs v0.8.1 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking email_address v0.2.9 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking uuid-simd v0.8.0 [INFO] [stderr] Checking tracing-serde v0.2.0 [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking tokio-tungstenite v0.26.2 [INFO] [stderr] Checking os_info v3.12.0 [INFO] [stderr] Checking reqwest v0.12.22 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking bluez-async v0.8.2 [INFO] [stderr] Checking referencing v0.30.0 [INFO] [stderr] Checking serde-aux v4.7.0 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking jsonschema v0.30.0 [INFO] [stderr] Checking btleplug v0.11.8 [INFO] [stderr] Checking buttplug v9.0.9 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:934:5 [INFO] [stdout] | [INFO] [stdout] 934 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 937 | ) -> BoxFuture> { [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] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 937 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:945:5 [INFO] [stdout] | [INFO] [stdout] 945 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 948 | ) -> BoxFuture> { [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] 948 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:956:5 [INFO] [stdout] | [INFO] [stdout] 956 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 959 | ) -> BoxFuture> { [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] 959 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:972:5 [INFO] [stdout] | [INFO] [stdout] 972 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 975 | ) -> BoxFuture> { [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] 975 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:1004:5 [INFO] [stdout] | [INFO] [stdout] 1004 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 1007 | ) -> BoxFuture> { [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] 1007 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/galaku.rs:196:5 [INFO] [stdout] | [INFO] [stdout] 196 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 199 | ) -> BoxFuture> { [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] 199 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/galaku.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 222 | ) -> BoxFuture> { [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] 222 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/galaku.rs:242:5 [INFO] [stdout] | [INFO] [stdout] 242 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 245 | ) -> BoxFuture> { [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] 245 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kgoal_boost.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 64 | ) -> BoxFuture> { [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] 64 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kgoal_boost.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 150 | ) -> BoxFuture> { [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] 150 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_prowand.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 51 | ) -> BoxFuture> { [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] 51 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_spot.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 44 | ) -> BoxFuture> { [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] 44 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_v21.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 121 | ) -> BoxFuture> { [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] 121 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_v21.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 160 | ) -> BoxFuture> { [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] 160 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_v21.rs:243:5 [INFO] [stdout] | [INFO] [stdout] 243 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 246 | ) -> BoxFuture> { [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] 246 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/lovense.rs:383:5 [INFO] [stdout] | [INFO] [stdout] 383 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 386 | ) -> BoxFuture> { [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] 386 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/lovense_connect_service.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 296 | ) -> BoxFuture> { [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] 296 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/xinput.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 70 | ) -> BoxFuture> { [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] 70 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/server.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn disconnect(&self) -> BoxFuture> { [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] 128 | pub fn disconnect(&self) -> BoxFuture<'_, Result<(), message::ErrorV0>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/server_downgrade_wrapper.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn disconnect(&self) -> BoxFuture> { [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] 71 | pub fn disconnect(&self) -> BoxFuture<'_, Result<(), message::ErrorV0>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:934:5 [INFO] [stdout] | [INFO] [stdout] 934 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 937 | ) -> BoxFuture> { [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] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 937 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:945:5 [INFO] [stdout] | [INFO] [stdout] 945 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 948 | ) -> BoxFuture> { [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] 948 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:956:5 [INFO] [stdout] | [INFO] [stdout] 956 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 959 | ) -> BoxFuture> { [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] 959 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:972:5 [INFO] [stdout] | [INFO] [stdout] 972 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 975 | ) -> BoxFuture> { [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] 975 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/mod.rs:1004:5 [INFO] [stdout] | [INFO] [stdout] 1004 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 1007 | ) -> BoxFuture> { [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] 1007 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/galaku.rs:196:5 [INFO] [stdout] | [INFO] [stdout] 196 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 199 | ) -> BoxFuture> { [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] 199 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/galaku.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 222 | ) -> BoxFuture> { [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] 222 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/galaku.rs:242:5 [INFO] [stdout] | [INFO] [stdout] 242 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 245 | ) -> BoxFuture> { [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] 245 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kgoal_boost.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 64 | ) -> BoxFuture> { [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] 64 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kgoal_boost.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 150 | ) -> BoxFuture> { [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] 150 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_prowand.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 51 | ) -> BoxFuture> { [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] 51 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_spot.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 44 | ) -> BoxFuture> { [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] 44 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_v21.rs:118:5 [INFO] [stdout] | [INFO] [stdout] 118 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 121 | ) -> BoxFuture> { [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] 121 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_v21.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 160 | ) -> BoxFuture> { [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] 160 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/kiiroo_v21.rs:243:5 [INFO] [stdout] | [INFO] [stdout] 243 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 246 | ) -> BoxFuture> { [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] 246 | ) -> BoxFuture<'_, Result<(), ButtplugDeviceError>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/lovense.rs:383:5 [INFO] [stdout] | [INFO] [stdout] 383 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 386 | ) -> BoxFuture> { [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] 386 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/lovense_connect_service.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 296 | ) -> BoxFuture> { [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] 296 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/device/protocol/xinput.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 70 | ) -> BoxFuture> { [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] 70 | ) -> BoxFuture<'_, Result> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/server.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn disconnect(&self) -> BoxFuture> { [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] 128 | pub fn disconnect(&self) -> BoxFuture<'_, Result<(), message::ErrorV0>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/server/server_downgrade_wrapper.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn disconnect(&self) -> BoxFuture> { [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] 71 | pub fn disconnect(&self) -> BoxFuture<'_, Result<(), message::ErrorV0>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/client.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | .instrument(tracing::info_span!("Client Loop Span")), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 225 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 226 + client_event_loop.run().await; [INFO] [stdout] 227 + }, { [INFO] [stdout] 228 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 229 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 230 + name: $name, [INFO] [stdout] 231 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 232 + target: $target, [INFO] [stdout] 233 + level: $lvl, [INFO] [stdout] 234 + fields: $($fields)* [INFO] [stdout] 235 + }; [INFO] [stdout] 236 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 237 + if $crate::level_enabled!($lvl) [INFO] [stdout] 238 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 239 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 240 + { [INFO] [stdout] 241 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 242 + // span with contextual parent [INFO] [stdout] 243 + $crate::Span::new( [INFO] [stdout] 244 + meta, [INFO] [stdout] 245 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 246 + ) [INFO] [stdout] 247 + } else { [INFO] [stdout] 248 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 249 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 250 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 251 + }}; [INFO] [stdout] 252 + span [INFO] [stdout] 253 + } [INFO] [stdout] 254 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/device.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | .instrument(tracing::trace_span!("ClientDeviceSendFuture for {}", id)), [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 230 ~ tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 231 + if !client_connected.load(Ordering::SeqCst) { [INFO] [stdout] 232 + error!("Client not connected, cannot run device command"); [INFO] [stdout] 233 + return Err(ButtplugConnectorError::ConnectorNotConnected.into()); [INFO] [stdout] 234 + } else if !device_connected.load(Ordering::SeqCst) { [INFO] [stdout] 235 + error!("Device not connected, cannot run device command"); [INFO] [stdout] 236 + return Err( [INFO] [stdout] 237 + ButtplugError::from(ButtplugDeviceError::DeviceNotConnected(device_name)).into(), [INFO] [stdout] 238 + ); [INFO] [stdout] 239 + } [INFO] [stdout] 240 + let fut = ButtplugServerMessageFuture::default(); [INFO] [stdout] 241 + message_sender [INFO] [stdout] 242 + .send(ButtplugClientRequest::Message( [INFO] [stdout] 243 + ButtplugClientMessageFuturePair::new(msg.clone(), fut.get_state_clone()), [INFO] [stdout] 244 + )) [INFO] [stdout] 245 + .map_err(|_| { [INFO] [stdout] 246 + ButtplugClientError::ButtplugConnectorError( [INFO] [stdout] 247 + ButtplugConnectorError::ConnectorChannelClosed, [INFO] [stdout] 248 + ) [INFO] [stdout] 249 + })?; [INFO] [stdout] 250 + let msg = fut.await?; [INFO] [stdout] 251 + if let ButtplugServerMessageV2::Error(_err) = msg { [INFO] [stdout] 252 + Err(ButtplugError::from(_err).into()) [INFO] [stdout] 253 + } else { [INFO] [stdout] 254 + Ok(msg) [INFO] [stdout] 255 + } [INFO] [stdout] 256 + }, { [INFO] [stdout] 257 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 258 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 259 + name: $name, [INFO] [stdout] 260 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 261 + target: $target, [INFO] [stdout] 262 + level: $lvl, [INFO] [stdout] 263 + fields: $($fields)* [INFO] [stdout] 264 + }; [INFO] [stdout] 265 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 266 + if $crate::level_enabled!($lvl) [INFO] [stdout] 267 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 268 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 269 + { [INFO] [stdout] 270 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 271 + // span with contextual parent [INFO] [stdout] 272 + $crate::Span::new( [INFO] [stdout] 273 + meta, [INFO] [stdout] 274 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 275 + ) [INFO] [stdout] 276 + } else { [INFO] [stdout] 277 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 278 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 279 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 280 + }}; [INFO] [stdout] 281 + span [INFO] [stdout] 282 + } [INFO] [stdout] 283 ~ }), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> tests/util/device_test/client/client_v2/in_process_connector.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | }.instrument(tracing::info_span!("InProcessClientConnectorEventSenderLoop"))); [INFO] [stdout] | ^^^^^^^^^^ multiple `instrument` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `tracing::Instrument` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `tracing_futures::Instrument` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 122 ~ async_manager::spawn(tracing_futures::Instrument::instrument(async move { [INFO] [stdout] 123 + info!("Starting In Process Client Connector Event Sender Loop"); [INFO] [stdout] 124 + pin_mut!(server_recv); [INFO] [stdout] 125 + while let Some(event) = server_recv.next().await { [INFO] [stdout] 126 + // If we get an error back, it means the client dropped our event [INFO] [stdout] 127 + // handler, so just stop trying. Otherwise, since this is an [INFO] [stdout] 128 + // in-process conversion, we can unwrap because we know our [INFO] [stdout] 129 + // try_into() will always succeed (which may not be the case with [INFO] [stdout] 130 + // remote connections that have different spec versions). [INFO] [stdout] 131 + if let ButtplugServerMessageVariant::V2(msg) = event { [INFO] [stdout] 132 + if send.send(msg).await.is_err() { [INFO] [stdout] 133 + break; [INFO] [stdout] 134 + } [INFO] [stdout] 135 + } else { [INFO] [stdout] 136 + panic!("This is in-process so we're always on the latest message spec, this will always work.") [INFO] [stdout] 137 + } [INFO] [stdout] 138 + } [INFO] [stdout] 139 + info!("Stopping In Process Client Connector Event Sender Loop, due to channel receiver being dropped."); [INFO] [stdout] 140 + }, { [INFO] [stdout] 141 + use $crate::__macro_support::Callsite as _; [INFO] [stdout] 142 + static __CALLSITE: $crate::callsite::DefaultCallsite = $crate::callsite2! { [INFO] [stdout] 143 + name: $name, [INFO] [stdout] 144 + kind: $crate::metadata::Kind::SPAN, [INFO] [stdout] 145 + target: $target, [INFO] [stdout] 146 + level: $lvl, [INFO] [stdout] 147 + fields: $($fields)* [INFO] [stdout] 148 + }; [INFO] [stdout] 149 + let mut interest = $crate::subscriber::Interest::never(); [INFO] [stdout] 150 + if $crate::level_enabled!($lvl) [INFO] [stdout] 151 + && { interest = __CALLSITE.interest(); !interest.is_never() } [INFO] [stdout] 152 + && $crate::__macro_support::__is_enabled(__CALLSITE.metadata(), interest) [INFO] [stdout] 153 + { [INFO] [stdout] 154 + let meta = __CALLSITE.metadata(); [INFO] [stdout] 155 + // span with contextual parent [INFO] [stdout] 156 + $crate::Span::new( [INFO] [stdout] 157 + meta, [INFO] [stdout] 158 + &$crate::valueset!(meta.fields(), $($fields)*), [INFO] [stdout] 159 + ) [INFO] [stdout] 160 + } else { [INFO] [stdout] 161 + let span = $crate::__macro_support::__disabled_span(__CALLSITE.metadata()); [INFO] [stdout] 162 + $crate::if_log_enabled! { $lvl, { [INFO] [stdout] 163 + span.record_all(&$crate::valueset!(__CALLSITE.metadata().fields(), $($fields)*)); [INFO] [stdout] 164 + }}; [INFO] [stdout] 165 + span [INFO] [stdout] 166 + } [INFO] [stdout] 167 ~ })); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `buttplug` (test "test_server") due to 3 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `buttplug` (test "test_websocket_connectors") due to 3 previous errors [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `buttplug` (test "test_client_device") due to 3 previous errors [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `buttplug` (test "test_device_config") due to 3 previous errors [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `buttplug` (test "test_serializers") due to 3 previous errors [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `buttplug` (test "test_client") due to 3 previous errors [INFO] [stderr] error: could not compile `buttplug` (test "test_websocket_device_comm_manager") due to 3 previous errors [INFO] [stdout] For more information about this error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `buttplug` (test "test_device_protocols") due to 3 previous errors [INFO] running `Command { std: "docker" "inspect" "73bca5f2877771257ba19963ca3c359ed0c8be01da65de39dc4a506dac7992a9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "73bca5f2877771257ba19963ca3c359ed0c8be01da65de39dc4a506dac7992a9", kill_on_drop: false }` [INFO] [stdout] 73bca5f2877771257ba19963ca3c359ed0c8be01da65de39dc4a506dac7992a9