[INFO] cloning repository https://github.com/henry-aus/homework-w4 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/henry-aus/homework-w4" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhenry-aus%2Fhomework-w4", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhenry-aus%2Fhomework-w4'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 36c6341deb19ea2c87a54bd1706d3ad37b5d62a1 [INFO] checking henry-aus/homework-w4 against try#028201683a76a5cd349729c6819c46607119c4e8 for pr-144157 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhenry-aus%2Fhomework-w4" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/henry-aus/homework-w4 [INFO] finished tweaking git repo https://github.com/henry-aus/homework-w4 [INFO] tweaked toml for git repo https://github.com/henry-aus/homework-w4 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/henry-aus/homework-w4 on toolchain 028201683a76a5cd349729c6819c46607119c4e8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+028201683a76a5cd349729c6819c46607119c4e8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/henry-aus/homework-w4 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" "+028201683a76a5cd349729c6819c46607119c4e8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+028201683a76a5cd349729c6819c46607119c4e8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8aa25819263cf16ab2c188ac43dfce0c26d9e272986fe8c92b8e156559c25f5b [INFO] running `Command { std: "docker" "start" "-a" "8aa25819263cf16ab2c188ac43dfce0c26d9e272986fe8c92b8e156559c25f5b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8aa25819263cf16ab2c188ac43dfce0c26d9e272986fe8c92b8e156559c25f5b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8aa25819263cf16ab2c188ac43dfce0c26d9e272986fe8c92b8e156559c25f5b", kill_on_drop: false }` [INFO] [stdout] 8aa25819263cf16ab2c188ac43dfce0c26d9e272986fe8c92b8e156559c25f5b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+028201683a76a5cd349729c6819c46607119c4e8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bfae7910d9426c19fd496e73326045ba3499aad23ed3ad78bcf49b27f1fee99c [INFO] running `Command { std: "docker" "start" "-a" "bfae7910d9426c19fd496e73326045ba3499aad23ed3ad78bcf49b27f1fee99c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling proc-macro2 v1.0.84 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking memchr v2.7.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling subtle v2.5.0 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Checking log v0.4.21 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling zerocopy v0.7.34 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling allocator-api2 v0.2.18 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling unicode-bidi v0.3.15 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling unicode-normalization v0.1.23 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling crc-catalog v2.4.0 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling tokio v1.37.0 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling cpufeatures v0.2.12 [INFO] [stderr] Compiling unicode_categories v0.1.1 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling bitflags v2.5.0 [INFO] [stderr] Compiling crossbeam-queue v0.3.11 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Checking http-body v1.0.0 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling url v2.5.0 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling crc v3.2.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling hashlink v0.8.4 [INFO] [stderr] Compiling indexmap v2.2.6 [INFO] [stderr] Compiling unicode-properties v0.1.1 [INFO] [stderr] Compiling event-listener v2.5.3 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling linux-raw-sys v0.4.14 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling base64 v0.21.7 [INFO] [stderr] Compiling unicode-segmentation v1.11.0 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling fastrand v2.1.0 [INFO] [stderr] Compiling home v0.5.9 [INFO] [stderr] Compiling whoami v1.5.1 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling axum-core v0.4.3 [INFO] [stderr] Checking http-body-util v0.1.1 [INFO] [stderr] Compiling axum v0.7.5 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking sync_wrapper v1.0.1 [INFO] [stderr] Checking nanoid v0.4.0 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking homework-w4 v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Compiling serde_derive v1.0.203 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling async-trait v0.1.80 [INFO] [stderr] Compiling tempfile v3.10.1 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Compiling tokio-stream v0.1.15 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Checking hyper v1.3.1 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking either v1.12.0 [INFO] [stderr] Checking serde_path_to_error v0.1.16 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking hyper-util v0.1.5 [INFO] [stderr] Checking sqlformat v0.2.3 [INFO] [stderr] Checking sqlx-core v0.7.4 [INFO] [stderr] Checking sqlx-postgres v0.7.4 [INFO] [stderr] Compiling sqlx-macros-core v0.7.4 [INFO] [stderr] Compiling sqlx-macros v0.7.4 [INFO] [stderr] Checking sqlx v0.7.4 [INFO] [stdout] error[E0275]: overflow evaluating the requirement `&tokio::sync::mpsc::Sender>: std::marker::Send` [INFO] [stdout] | [INFO] [stdout] = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`chat`) [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.37.0/src/sync/mpsc/bounded.rs:1007:73 [INFO] [stdout] | [INFO] [stdout] 1007 | pub async fn reserve(&self) -> Result, SendError<()>> { [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 1008 | | self.reserve_inner(1).await?; [INFO] [stdout] 1009 | | Ok(Permit { chan: &self.chan }) [INFO] [stdout] 1010 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.37.0/src/sync/mpsc/bounded.rs:710:68 [INFO] [stdout] | [INFO] [stdout] 710 | pub async fn send(&self, value: T) -> Result<(), SendError> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 711 | | match self.reserve().await { [INFO] [stdout] 712 | | Ok(permit) => { [INFO] [stdout] 713 | | permit.send(value); [INFO] [stdout] ... | [INFO] [stdout] 718 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:128:81 [INFO] [stdout] | [INFO] [stdout] 128 | async fn process_connection(stream: TcpStream, state: Arc) -> Result<()> { [INFO] [stdout] | _________________________________________________________________________________^ [INFO] [stdout] 129 | | let mut lines = Framed::new(stream, LinesCodec::new()); [INFO] [stdout] 130 | | [INFO] [stdout] 131 | | lines.send("Please enter your name:").await?; [INFO] [stdout] ... | [INFO] [stdout] 168 | | Ok(()) [INFO] [stdout] 169 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: required because it's used within this `async` block [INFO] [stdout] --> examples/chat.rs:116:22 [INFO] [stdout] | [INFO] [stdout] 116 | tokio::spawn(async move { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/chat-aee932e893eb16f5.long-type-15556027183599288564.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0275]: overflow evaluating the requirement `&tokio::sync::mpsc::Sender>: std::marker::Send` [INFO] [stdout] --> examples/chat.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | / tokio::spawn(async move { [INFO] [stdout] 117 | | // a function to handle the incoming connection [INFO] [stdout] 118 | | if let Err(e) = process_connection(stream, state).await { [INFO] [stdout] 119 | | error!("Process client connection error. {}", e); [INFO] [stdout] 120 | | } [INFO] [stdout] 121 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`chat`) [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.37.0/src/sync/mpsc/bounded.rs:1007:73 [INFO] [stdout] | [INFO] [stdout] 1007 | pub async fn reserve(&self) -> Result, SendError<()>> { [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 1008 | | self.reserve_inner(1).await?; [INFO] [stdout] 1009 | | Ok(Permit { chan: &self.chan }) [INFO] [stdout] 1010 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.37.0/src/sync/mpsc/bounded.rs:710:68 [INFO] [stdout] | [INFO] [stdout] 710 | pub async fn send(&self, value: T) -> Result<(), SendError> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 711 | | match self.reserve().await { [INFO] [stdout] 712 | | Ok(permit) => { [INFO] [stdout] 713 | | permit.send(value); [INFO] [stdout] ... | [INFO] [stdout] 718 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] = note: required for `Unique>>` to implement `std::marker::Send` [INFO] [stdout] note: required because it appears within the type `Box>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/alloc/src/boxed.rs:231:12 [INFO] [stdout] note: required because it appears within the type `Pin>>>` [INFO] [stdout] --> /rustc/028201683a76a5cd349729c6819c46607119c4e8/library/core/src/pin.rs:1094:12 [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:78:68 [INFO] [stdout] | [INFO] [stdout] 78 | async fn remove_client(&self, client_name: &str) -> Result<()> { [INFO] [stdout] | ____________________________________________________________________^ [INFO] [stdout] 79 | | self.peers.remove(client_name); [INFO] [stdout] 80 | | Box::pin(self.broadcast(Message::UserLeft { [INFO] [stdout] 81 | | client_name: client_name.to_string(), [INFO] [stdout] 82 | | })) [INFO] [stdout] 83 | | .await [INFO] [stdout] 84 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:86:63 [INFO] [stdout] | [INFO] [stdout] 86 | async fn broadcast(&self, message: Message) -> Result<()> { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 87 | | let message = Arc::new(message); [INFO] [stdout] 88 | | let client_name = message.client_name().await; [INFO] [stdout] 89 | | for peer in self.peers.iter() { [INFO] [stdout] ... | [INFO] [stdout] 98 | | Ok(()) [INFO] [stdout] 99 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] note: required because it's used within this `async` fn body [INFO] [stdout] --> examples/chat.rs:128:81 [INFO] [stdout] | [INFO] [stdout] 128 | async fn process_connection(stream: TcpStream, state: Arc) -> Result<()> { [INFO] [stdout] | _________________________________________________________________________________^ [INFO] [stdout] 129 | | let mut lines = Framed::new(stream, LinesCodec::new()); [INFO] [stdout] 130 | | [INFO] [stdout] 131 | | lines.send("Please enter your name:").await?; [INFO] [stdout] ... | [INFO] [stdout] 168 | | Ok(()) [INFO] [stdout] 169 | | } [INFO] [stdout] | |_^ [INFO] [stdout] note: required because it's used within this `async` block [INFO] [stdout] --> examples/chat.rs:116:22 [INFO] [stdout] | [INFO] [stdout] 116 | tokio::spawn(async move { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] note: required by a bound in `tokio::spawn` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.37.0/src/task/spawn.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn spawn(future: F) -> JoinHandle [INFO] [stdout] | ----- required by a bound in this function [INFO] [stdout] 165 | where [INFO] [stdout] 166 | F: Future + Send + 'static, [INFO] [stdout] | ^^^^ required by this bound in `spawn` [INFO] [stdout] = note: the full name for the type has been written to '/opt/rustwide/target/debug/examples/chat-aee932e893eb16f5.long-type-15556027183599288564.txt' [INFO] [stdout] = note: consider using `--verbose` to print the full type name to the console [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0275`. [INFO] [stdout] [INFO] [stderr] error: could not compile `homework-w4` (example "chat") due to 2 previous errors [INFO] running `Command { std: "docker" "inspect" "bfae7910d9426c19fd496e73326045ba3499aad23ed3ad78bcf49b27f1fee99c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bfae7910d9426c19fd496e73326045ba3499aad23ed3ad78bcf49b27f1fee99c", kill_on_drop: false }` [INFO] [stdout] bfae7910d9426c19fd496e73326045ba3499aad23ed3ad78bcf49b27f1fee99c