[INFO] cloning repository https://github.com/BOB-THE-BUILDER-in/cross_plat_network
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BOB-THE-BUILDER-in/cross_plat_network" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBOB-THE-BUILDER-in%2Fcross_plat_network", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBOB-THE-BUILDER-in%2Fcross_plat_network'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dc7da9341ce2632a3aec76ba039efbb168b8e443
[INFO] checking BOB-THE-BUILDER-in/cross_plat_network against try#863511eff87e66198b396935f3b5c8a543022f53 for pr-139493-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBOB-THE-BUILDER-in%2Fcross_plat_network" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BOB-THE-BUILDER-in/cross_plat_network
[INFO] finished tweaking git repo https://github.com/BOB-THE-BUILDER-in/cross_plat_network
[INFO] tweaked toml for git repo https://github.com/BOB-THE-BUILDER-in/cross_plat_network written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BOB-THE-BUILDER-in/cross_plat_network on toolchain 863511eff87e66198b396935f3b5c8a543022f53
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+863511eff87e66198b396935f3b5c8a543022f53" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BOB-THE-BUILDER-in/cross_plat_network 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" "+863511eff87e66198b396935f3b5c8a543022f53" "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-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+863511eff87e66198b396935f3b5c8a543022f53" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e13c0a108bdabe94727e2aa0171f92676fe6dc47e5a94363b293e0a759da1abf
[INFO] running `Command { std: "docker" "start" "-a" "e13c0a108bdabe94727e2aa0171f92676fe6dc47e5a94363b293e0a759da1abf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e13c0a108bdabe94727e2aa0171f92676fe6dc47e5a94363b293e0a759da1abf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e13c0a108bdabe94727e2aa0171f92676fe6dc47e5a94363b293e0a759da1abf", kill_on_drop: false }`
[INFO] [stdout] e13c0a108bdabe94727e2aa0171f92676fe6dc47e5a94363b293e0a759da1abf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+863511eff87e66198b396935f3b5c8a543022f53" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 34f995c26a2c952d64e82452e86b60622ef938c94c19dea6985ea2c9bcb2a2f0
[INFO] running `Command { std: "docker" "start" "-a" "34f995c26a2c952d64e82452e86b60622ef938c94c19dea6985ea2c9bcb2a2f0", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.100
[INFO] [stderr]    Compiling rustversion v1.0.20
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]     Checking once_cell v1.21.1
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.100
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.100
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.100
[INFO] [stderr]     Checking wasm-bindgen v0.2.100
[INFO] [stderr]     Checking js-sys v0.3.77
[INFO] [stderr]     Checking web-sys v0.3.77
[INFO] [stderr]     Checking ws_project v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `bevy`
[INFO] [stdout]  --> src/bin/native_client.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bevy::prelude::*;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `bevy`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `bevy`, use `cargo add bevy` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `bevy_egui`
[INFO] [stdout]  --> src/bin/native_client.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bevy_egui::{egui, EguiContexts, EguiPlugin};
[INFO] [stdout]   |     ^^^^^^^^^ use of unresolved module or unlinked crate `bevy_egui`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `bevy_egui`, use `cargo add bevy_egui` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/native_client.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/native_client.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/native_client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::runtime::Runtime;
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `futures_util`
[INFO] [stdout]  --> src/bin/native_client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures_util::{StreamExt, SinkExt};
[INFO] [stdout]   |     ^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_util`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `futures_util`, use `cargo add futures_util` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Resource` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Resource)]
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 |     sender: Arc<Mutex<Option<tokio::sync::mpsc::UnboundedSender<String>>>>,
[INFO] [stdout]    |                              ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:56:28
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::<String>();
[INFO] [stdout]    |                            ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DefaultPlugins` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:20:22
[INFO] [stdout]    |
[INFO] [stdout] 20 |         .add_plugins(DefaultPlugins)
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:25:22
[INFO] [stdout]    |
[INFO] [stdout] 25 |             runtime: tokio::runtime::Builder::new_multi_thread()
[INFO] [stdout]    |                      ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  1 + use std::thread::Builder;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Builder`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 25 -             runtime: tokio::runtime::Builder::new_multi_thread()
[INFO] [stdout] 25 +             runtime: Builder::new_multi_thread()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Startup` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |         .add_systems(Startup, setup_websocket)
[INFO] [stdout]    |                      ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Update` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |         .add_systems(Update, ui_system.before(ui_update_system))
[INFO] [stdout]    |                      ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Update` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:34:22
[INFO] [stdout]    |
[INFO] [stdout] 34 |         .add_systems(Update, ui_update_system)
[INFO] [stdout]    |                      ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ResMut` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:38:34
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn setup_websocket(mut ws_state: ResMut<WsState>) {
[INFO] [stdout]    |                                  ^^^^^^ help: a trait with a similar name exists: `AsMut`
[INFO] [stdout]    |
[INFO] [stdout]   --> /rustc/863511eff87e66198b396935f3b5c8a543022f53/library/core/src/convert/mod.rs:372:1
[INFO] [stdout]    |
[INFO] [stdout]    = note: similarly named trait `AsMut` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Res` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:96:52
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn ui_system(mut contexts: EguiContexts, ws_state: Res<WsState>) {
[INFO] [stdout]    |                                                    ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Res` in this scope
[INFO] [stdout]    --> src/bin/native_client.rs:129:59
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn ui_update_system(mut contexts: EguiContexts, ws_state: Res<WsState>) {
[INFO] [stdout]     |                                                           ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/bin/native_client.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `App`
[INFO] [stdout]   --> src/bin/native_client.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     App::new()
[INFO] [stdout]    |     ^^^ use of undeclared type `App`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `bevy`
[INFO] [stdout]  --> src/bin/native_client.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bevy::prelude::*;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `bevy`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `bevy`, use `cargo add bevy` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `before` found for fn item `fn({type error}, {type error}) {ui_system}` in the current scope
[INFO] [stdout]   --> src/bin/native_client.rs:33:40
[INFO] [stdout]    |
[INFO] [stdout] 33 |         .add_systems(Update, ui_system.before(ui_update_system))
[INFO] [stdout]    |                                        ^^^^^^ method not found in `fn({type error}, {type error}) {ui_system}`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]   --> src/bin/native_client.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let (ws_stream, _) = match connect_async(url).await {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |         let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]    |                                     --------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this pattern a type, where the placeholders `_` are specified
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let (ws_stream, _): (_, _) = match connect_async(url).await {
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:63:25
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let send_task = tokio::spawn(async move {
[INFO] [stdout]    |                         ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:64:35
[INFO] [stdout]    |
[INFO] [stdout] 64 |             while let Some(msg) = rx.recv().await {
[INFO] [stdout]    |                                   ^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `bevy_egui`
[INFO] [stdout]  --> src/bin/native_client.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use bevy_egui::{egui, EguiContexts, EguiPlugin};
[INFO] [stdout]   |     ^^^^^^^^^ use of unresolved module or unlinked crate `bevy_egui`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `bevy_egui`, use `cargo add bevy_egui` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/native_client.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:65:33
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 if let Err(e) = write.send(Message::Text(msg.into())).await {
[INFO] [stdout]    |                                 ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/native_client.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/native_client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::runtime::Runtime;
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `futures_util`
[INFO] [stdout]  --> src/bin/native_client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures_util::{StreamExt, SinkExt};
[INFO] [stdout]   |     ^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_util`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `futures_util`, use `cargo add futures_util` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:65:58
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 if let Err(e) = write.send(Message::Text(msg.into())).await {
[INFO] [stdout]    |                                                          ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:72:31
[INFO] [stdout]    |
[INFO] [stdout] 72 |         while let Some(msg) = read.next().await {
[INFO] [stdout]    |                               ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |         .show(ctx, |ui| {
[INFO] [stdout]     |                     ^^
[INFO] [stdout] 102 |             ui.horizontal(|ui| {
[INFO] [stdout]     |             -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 101 |         .show(ctx, |ui: /* Type */| {
[INFO] [stdout]     |                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |             ui.horizontal(|ui| {
[INFO] [stdout]     |                            ^^
[INFO] [stdout] 103 |                 ui.label("Message:");
[INFO] [stdout]     |                 -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 102 |             ui.horizontal(|ui: /* Type */| {
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tokio::net::{TcpListener, TcpStream};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:107:61
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 if ui.button("Send").clicked() || ui.input(|i| i.key_pressed(egui::Key::Enter)) {
[INFO] [stdout]     |                                                             ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 if ui.button("Send").clicked() || ui.input(|i: /* Type */| i.key_pressed(egui::Key::Enter)) {
[INFO] [stdout]     |                                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 | ...                   if tx.send(message.clone()).is_ok() {
[INFO] [stdout]     |                          ^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::sync::{mpsc, Mutex};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 |         .show(ctx, |ui| {
[INFO] [stdout]     |                     ^^
[INFO] [stdout] 135 |             let messages_guard = ws_state.messages.lock().unwrap();
[INFO] [stdout] 136 |             ui.label("Messages:");
[INFO] [stdout]     |             -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 134 |         .show(ctx, |ui: /* Type */| {
[INFO] [stdout]     |                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:140:28
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 .show(ui, |ui| {
[INFO] [stdout]     |                            ^^
[INFO] [stdout] 141 |                     for msg in messages_guard.iter() {
[INFO] [stdout] 142 |                         ui.label(msg);
[INFO] [stdout]     |                         -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 .show(ui, |ui: /* Type */| {
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0412, E0425, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/server.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{accept_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/server.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{accept_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `futures_util`
[INFO] [stdout]  --> src/bin/server.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures_util::{StreamExt, SinkExt};
[INFO] [stdout]   |     ^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_util`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `futures_util`, use `cargo add futures_util` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/server.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[tokio::main]
[INFO] [stdout]   |   ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/client.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/client.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `futures_util`
[INFO] [stdout]  --> src/bin/client.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use futures_util::{StreamExt, SinkExt};
[INFO] [stdout]   |     ^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_util`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `futures_util`, use `cargo add futures_util` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/client.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[tokio::main]
[INFO] [stdout]   |   ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tokio::net::{TcpListener, TcpStream};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::sync::{mpsc, Mutex};
[INFO] [stdout]   |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `Resource` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Resource)]
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/client.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/client.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `futures_util`
[INFO] [stdout]  --> src/bin/client.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use futures_util::{StreamExt, SinkExt};
[INFO] [stdout]   |     ^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_util`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `futures_util`, use `cargo add futures_util` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/client.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[tokio::main]
[INFO] [stdout]   |   ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/server.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{accept_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_tungstenite`
[INFO] [stdout]  --> src/bin/server.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio_tungstenite::{accept_async, tungstenite::protocol::Message};
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_tungstenite`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_tungstenite`, use `cargo add tokio_tungstenite` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws_project` (bin "native_client") due to 31 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0432]: unresolved import `futures_util`
[INFO] [stdout]  --> src/bin/server.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures_util::{StreamExt, SinkExt};
[INFO] [stdout]   |     ^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_util`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `futures_util`, use `cargo add futures_util` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]  --> src/bin/server.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[tokio::main]
[INFO] [stdout]   |   ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 |     sender: Arc<Mutex<Option<tokio::sync::mpsc::UnboundedSender<String>>>>,
[INFO] [stdout]    |                              ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/client.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |             tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
[INFO] [stdout]    |             ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/client.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |             tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
[INFO] [stdout]    |                                ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  1 + use std::time::Duration;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Duration`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 24 -             tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
[INFO] [stdout] 24 +             tokio::time::sleep(Duration::from_secs(1)).await;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]  --> src/bin/client.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 |       let (ws_stream, _) = connect_async(url)
[INFO] [stdout]   |  __________________________^
[INFO] [stdout] 9 | |         .await
[INFO] [stdout]   | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]    |                                 ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/client.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     tokio::spawn(async move {
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:56:28
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::<String>();
[INFO] [stdout]    |                            ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             write
[INFO] [stdout]    |             ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | /             write
[INFO] [stdout] 21 | |                 .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 22 | |                 .await
[INFO] [stdout]    | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 |     while let Some(msg) = read.next().await {
[INFO] [stdout]    |                           ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DefaultPlugins` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:20:22
[INFO] [stdout]    |
[INFO] [stdout] 20 |         .add_plugins(DefaultPlugins)
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:25:22
[INFO] [stdout]    |
[INFO] [stdout] 25 |             runtime: tokio::runtime::Builder::new_multi_thread()
[INFO] [stdout]    |                      ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  1 + use std::thread::Builder;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Builder`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 25 -             runtime: tokio::runtime::Builder::new_multi_thread()
[INFO] [stdout] 25 +             runtime: Builder::new_multi_thread()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Startup` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |         .add_systems(Startup, setup_websocket)
[INFO] [stdout]    |                      ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Update` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 |         .add_systems(Update, ui_system.before(ui_update_system))
[INFO] [stdout]    |                      ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `Update` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:34:22
[INFO] [stdout]    |
[INFO] [stdout] 34 |         .add_systems(Update, ui_update_system)
[INFO] [stdout]    |                      ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ResMut` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:38:34
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn setup_websocket(mut ws_state: ResMut<WsState>) {
[INFO] [stdout]    |                                  ^^^^^^ help: a trait with a similar name exists: `AsMut`
[INFO] [stdout]    |
[INFO] [stdout]   --> /rustc/863511eff87e66198b396935f3b5c8a543022f53/library/core/src/convert/mod.rs:372:1
[INFO] [stdout]    |
[INFO] [stdout]    = note: similarly named trait `AsMut` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Res` in this scope
[INFO] [stdout]   --> src/bin/native_client.rs:96:52
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn ui_system(mut contexts: EguiContexts, ws_state: Res<WsState>) {
[INFO] [stdout]    |                                                    ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `Res` in this scope
[INFO] [stdout]    --> src/bin/native_client.rs:129:59
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn ui_update_system(mut contexts: EguiContexts, ws_state: Res<WsState>) {
[INFO] [stdout]     |                                                           ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/bin/native_client.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let listener = TcpListener::bind(addr).await.expect("Failed to bind");
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/server.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         tokio::spawn(handle_connection(stream, clients_clone));
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `App`
[INFO] [stdout]   --> src/bin/native_client.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     App::new()
[INFO] [stdout]    |     ^^^ use of undeclared type `App`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let ws_stream = match accept_async(stream).await {
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]    |                                 --------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `ws_stream` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let ws_stream: /* Type */ = match accept_async(stream).await {
[INFO] [stdout]    |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut clients_guard = clients.lock().await;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |         clients_guard.push(tx);
[INFO] [stdout]    |         ------------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `clients_guard` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut clients_guard: /* Type */ = clients.lock().await;
[INFO] [stdout]    |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/server.rs:44:22
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let write_task = tokio::spawn(async move {
[INFO] [stdout]    |                      ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:45:31
[INFO] [stdout]    |
[INFO] [stdout] 45 |         while let Some(msg) = rx.recv().await {
[INFO] [stdout]    |                               ^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:46:29
[INFO] [stdout]    |
[INFO] [stdout] 46 |             if let Err(e) = write.send(msg).await {
[INFO] [stdout]    |                             ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:54:27
[INFO] [stdout]    |
[INFO] [stdout] 54 |     while let Some(msg) = read.next().await {
[INFO] [stdout]    |                           ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let listener = TcpListener::bind(addr).await.expect("Failed to bind");
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws_project` (bin "server" test) due to 19 previous errors
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/server.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         tokio::spawn(handle_connection(stream, clients_clone));
[INFO] [stdout]    |         ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let ws_stream = match accept_async(stream).await {
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]    |                                 --------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `ws_stream` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let ws_stream: /* Type */ = match accept_async(stream).await {
[INFO] [stdout]    |                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut clients_guard = clients.lock().await;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |         clients_guard.push(tx);
[INFO] [stdout]    |         ------------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `clients_guard` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut clients_guard: /* Type */ = clients.lock().await;
[INFO] [stdout]    |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/server.rs:44:22
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let write_task = tokio::spawn(async move {
[INFO] [stdout]    |                      ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:45:31
[INFO] [stdout]    |
[INFO] [stdout] 45 |         while let Some(msg) = rx.recv().await {
[INFO] [stdout]    |                               ^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:46:29
[INFO] [stdout]    |
[INFO] [stdout] 46 |             if let Err(e) = write.send(msg).await {
[INFO] [stdout]    |                             ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:54:27
[INFO] [stdout]    |
[INFO] [stdout] 54 |     while let Some(msg) = read.next().await {
[INFO] [stdout]    |                           ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 |             Ok(msg) if msg.is_text() || msg.is_binary() => {
[INFO] [stdout]    |                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:58:21
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 let clients_guard = clients.lock().await;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout] 59 |                 for client_tx in clients_guard.iter() {
[INFO] [stdout]    |                                  ------------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `clients_guard` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 let clients_guard: /* Type */ = clients.lock().await;
[INFO] [stdout]    |                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:60:37
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     if let Err(e) = client_tx.send(msg.clone()) {
[INFO] [stdout]    |                                     ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut clients_guard = clients.lock().await;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 80 |         clients_guard.retain(|client_tx| !client_tx.is_closed());
[INFO] [stdout]    |         ------------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `clients_guard` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut clients_guard: /* Type */ = clients.lock().await;
[INFO] [stdout]    |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |         clients_guard.retain(|client_tx| !client_tx.is_closed());
[INFO] [stdout]    |                               ^^^^^^^^^   --------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 80 |         clients_guard.retain(|client_tx: /* Type */| !client_tx.is_closed());
[INFO] [stdout]    |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:56:24
[INFO] [stdout]    |
[INFO] [stdout] 56 |             Ok(msg) if msg.is_text() || msg.is_binary() => {
[INFO] [stdout]    |                        ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:58:21
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 let clients_guard = clients.lock().await;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout] 59 |                 for client_tx in clients_guard.iter() {
[INFO] [stdout]    |                                  ------------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `clients_guard` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 let clients_guard: /* Type */ = clients.lock().await;
[INFO] [stdout]    |                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:60:37
[INFO] [stdout]    |
[INFO] [stdout] 60 |                     if let Err(e) = client_tx.send(msg.clone()) {
[INFO] [stdout]    |                                     ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws_project` (bin "client" test) due to 12 previous errors
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut clients_guard = clients.lock().await;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 80 |         clients_guard.retain(|client_tx| !client_tx.is_closed());
[INFO] [stdout]    |         ------------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving `clients_guard` an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 79 |         let mut clients_guard: /* Type */ = clients.lock().await;
[INFO] [stdout]    |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/server.rs:80:31
[INFO] [stdout]    |
[INFO] [stdout] 80 |         clients_guard.retain(|client_tx| !client_tx.is_closed());
[INFO] [stdout]    |                               ^^^^^^^^^   --------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 80 |         clients_guard.retain(|client_tx: /* Type */| !client_tx.is_closed());
[INFO] [stdout]    |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0752]: `main` function is not allowed to be `async`
[INFO] [stdout]  --> src/bin/server.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | async fn main() {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433, E0752.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/client.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |             tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
[INFO] [stdout]    |             ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `before` found for fn item `fn({type error}, {type error}) {ui_system}` in the current scope
[INFO] [stdout]   --> src/bin/native_client.rs:33:40
[INFO] [stdout]    |
[INFO] [stdout] 33 |         .add_systems(Update, ui_system.before(ui_update_system))
[INFO] [stdout]    |                                        ^^^^^^ method not found in `fn({type error}, {type error}) {ui_system}`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/client.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |             tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
[INFO] [stdout]    |                                ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout]  1 + use std::time::Duration;
[INFO] [stdout]    |
[INFO] [stdout] help: if you import `Duration`, refer to it directly
[INFO] [stdout]    |
[INFO] [stdout] 24 -             tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
[INFO] [stdout] 24 +             tokio::time::sleep(Duration::from_secs(1)).await;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]   --> src/bin/native_client.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let (ws_stream, _) = match connect_async(url).await {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |         let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]    |                                     --------- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this pattern a type, where the placeholders `_` are specified
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let (ws_stream, _): (_, _) = match connect_async(url).await {
[INFO] [stdout]    |                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/native_client.rs:63:25
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let send_task = tokio::spawn(async move {
[INFO] [stdout]    |                         ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:64:35
[INFO] [stdout]    |
[INFO] [stdout] 64 |             while let Some(msg) = rx.recv().await {
[INFO] [stdout]    |                                   ^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:65:33
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 if let Err(e) = write.send(Message::Text(msg.into())).await {
[INFO] [stdout]    |                                 ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:65:58
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 if let Err(e) = write.send(Message::Text(msg.into())).await {
[INFO] [stdout]    |                                                          ^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/native_client.rs:72:31
[INFO] [stdout]    |
[INFO] [stdout] 72 |         while let Some(msg) = read.next().await {
[INFO] [stdout]    |                               ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:101:21
[INFO] [stdout]     |
[INFO] [stdout] 101 |         .show(ctx, |ui| {
[INFO] [stdout]     |                     ^^
[INFO] [stdout] 102 |             ui.horizontal(|ui| {
[INFO] [stdout]     |             -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 101 |         .show(ctx, |ui: /* Type */| {
[INFO] [stdout]     |                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |             ui.horizontal(|ui| {
[INFO] [stdout]     |                            ^^
[INFO] [stdout] 103 |                 ui.label("Message:");
[INFO] [stdout]     |                 -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 102 |             ui.horizontal(|ui: /* Type */| {
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:107:61
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 if ui.button("Send").clicked() || ui.input(|i| i.key_pressed(egui::Key::Enter)) {
[INFO] [stdout]     |                                                             ^  - type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 if ui.button("Send").clicked() || ui.input(|i: /* Type */| i.key_pressed(egui::Key::Enter)) {
[INFO] [stdout]     |                                                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 | ...                   if tx.send(message.clone()).is_ok() {
[INFO] [stdout]     |                          ^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 |         .show(ctx, |ui| {
[INFO] [stdout]     |                     ^^
[INFO] [stdout] 135 |             let messages_guard = ws_state.messages.lock().unwrap();
[INFO] [stdout] 136 |             ui.label("Messages:");
[INFO] [stdout]     |             -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 134 |         .show(ctx, |ui: /* Type */| {
[INFO] [stdout]     |                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/bin/native_client.rs:140:28
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 .show(ui, |ui| {
[INFO] [stdout]     |                            ^^
[INFO] [stdout] 141 |                     for msg in messages_guard.iter() {
[INFO] [stdout] 142 |                         ui.label(msg);
[INFO] [stdout]     |                         -- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 .show(ui, |ui: /* Type */| {
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0412, E0425, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]  --> src/bin/client.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 |       let (ws_stream, _) = connect_async(url)
[INFO] [stdout]   |  __________________________^
[INFO] [stdout] 9 | |         .await
[INFO] [stdout]   | |______________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws_project` (bin "server") due to 20 previous errors
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let (mut write, mut read) = ws_stream.split();
[INFO] [stdout]    |                                 ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]   --> src/bin/client.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     tokio::spawn(async move {
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `tokio`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `tokio`, use `cargo add tokio` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws_project` (bin "native_client" test) due to 31 previous errors; 1 warning emitted
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             write
[INFO] [stdout]    |             ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | /             write
[INFO] [stdout] 21 | |                 .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 22 | |                 .await
[INFO] [stdout]    | |______________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/bin/client.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 |     while let Some(msg) = read.next().await {
[INFO] [stdout]    |                           ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0752]: `main` function is not allowed to be `async`
[INFO] [stdout]  --> src/bin/client.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | async fn main() {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433, E0752.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ws_project` (bin "client") due to 13 previous errors
[INFO] running `Command { std: "docker" "inspect" "34f995c26a2c952d64e82452e86b60622ef938c94c19dea6985ea2c9bcb2a2f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "34f995c26a2c952d64e82452e86b60622ef938c94c19dea6985ea2c9bcb2a2f0", kill_on_drop: false }`
[INFO] [stdout] 34f995c26a2c952d64e82452e86b60622ef938c94c19dea6985ea2c9bcb2a2f0
