[INFO] cloning repository https://github.com/l1xnan/edge-tunnel-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/l1xnan/edge-tunnel-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fl1xnan%2Fedge-tunnel-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fl1xnan%2Fedge-tunnel-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9cc95cff091625cc2d1f735eed59f1647a56c5ee
[INFO] testing l1xnan/edge-tunnel-rs against 1.90.0 for beta-1.91-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fl1xnan%2Fedge-tunnel-rs" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/l1xnan/edge-tunnel-rs
[INFO] finished tweaking git repo https://github.com/l1xnan/edge-tunnel-rs
[INFO] tweaked toml for git repo https://github.com/l1xnan/edge-tunnel-rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/l1xnan/edge-tunnel-rs on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/l1xnan/edge-tunnel-rs 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" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded js-sys v0.3.78
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.101
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.51
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.101
[INFO] [stderr]   Downloaded worker-kv v0.9.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.101
[INFO] [stderr]   Downloaded wit-bindgen v0.45.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.101
[INFO] [stderr]   Downloaded worker v0.6.1
[INFO] [stderr]   Downloaded worker-macros v0.6.1
[INFO] [stderr]   Downloaded wasi v0.14.4+wasi-0.2.4
[INFO] [stderr]   Downloaded serde_json v1.0.143
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.101
[INFO] [stderr]   Downloaded worker-sys v0.6.1
[INFO] [stderr]   Downloaded web-sys v0.3.78
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7c0833e899fff34166fe533a5252111be819db093dedeae199077fff3778e9bf
[INFO] running `Command { std: "docker" "start" "-a" "7c0833e899fff34166fe533a5252111be819db093dedeae199077fff3778e9bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7c0833e899fff34166fe533a5252111be819db093dedeae199077fff3778e9bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7c0833e899fff34166fe533a5252111be819db093dedeae199077fff3778e9bf", kill_on_drop: false }`
[INFO] [stdout] 7c0833e899fff34166fe533a5252111be819db093dedeae199077fff3778e9bf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 64a0b47b6388248232cd9ca114e9a7636304cedc4356aea5596495b39ff3895f
[INFO] running `Command { std: "docker" "start" "-a" "64a0b47b6388248232cd9ca114e9a7636304cedc4356aea5596495b39ff3895f", kill_on_drop: false }`
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.101
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling wasm-bindgen v0.2.101
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.101
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.101
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.101
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling js-sys v0.3.78
[INFO] [stderr]    Compiling console_error_panic_hook v0.1.7
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.3
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.51
[INFO] [stderr]    Compiling web-sys v0.3.78
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling worker-kv v0.9.0
[INFO] [stderr]    Compiling worker-sys v0.6.1
[INFO] [stderr]    Compiling worker-macros v0.6.1
[INFO] [stderr]    Compiling wasm-streams v0.4.2
[INFO] [stderr]    Compiling worker v0.6.1
[INFO] [stderr]    Compiling edge-tunnel-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: `Message` is a variant, not a module
[INFO] [stdout]    --> src/lib1.rs:447:27
[INFO] [stdout]     |
[INFO] [stdout] 447 |         while let Some(Ok(Message::Bytes(data))) = stream.next().await {
[INFO] [stdout]     |                           ^^^^^^^ `Message` is a variant, not a module
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::worker_sys::Message;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `writer` in this scope
[INFO] [stdout]    --> src/lib1.rs:448:29
[INFO] [stdout]     |
[INFO] [stdout] 448 |             if let Err(_) = writer.write_all(&data).await {
[INFO] [stdout]     |                             ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `reader` in this scope
[INFO] [stdout]    --> src/lib1.rs:458:19
[INFO] [stdout]     |
[INFO] [stdout] 458 |             match reader.read(&mut buffer).await {
[INFO] [stdout]     |                   ^^^^^^ help: a tuple struct with a similar name exists: `Headers`
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/worker-0.6.1/src/headers.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Headers(pub web_sys::Headers);
[INFO] [stdout]     | ------------------ similarly named tuple struct `Headers` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Message`
[INFO] [stdout]    --> src/lib.rs:181:16
[INFO] [stdout]     |
[INFO] [stdout] 181 |     ws_tx.send(Message::Bytes(vec![0, 0])).await?;
[INFO] [stdout]     |                ^^^^^^^ use of undeclared type `Message`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::worker_sys::Message;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Message`
[INFO] [stdout]    --> src/lib.rs:192:17
[INFO] [stdout]     |
[INFO] [stdout] 192 |                 Message::Bytes(data) => {
[INFO] [stdout]     |                 ^^^^^^^ use of undeclared type `Message`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::worker_sys::Message;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Message`
[INFO] [stdout]    --> src/lib.rs:197:17
[INFO] [stdout]     |
[INFO] [stdout] 197 |                 Message::Text(_) => { /* VLESS 不使用文本消息 */ }
[INFO] [stdout]     |                 ^^^^^^^ use of undeclared type `Message`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::worker_sys::Message;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Message`
[INFO] [stdout]    --> src/lib.rs:209:31
[INFO] [stdout]     |
[INFO] [stdout] 209 |                         .send(Message::Bytes(buffer[..n].to_vec()))
[INFO] [stdout]     |                               ^^^^^^^ use of undeclared type `Message`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout]   1 + use crate::worker_sys::Message;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `worker::wasm_bindgen::JsValue`
[INFO] [stdout]  --> src/lib1.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use worker::wasm_bindgen::JsValue;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Poll`
[INFO] [stdout]    --> src/lib1.rs:430:44
[INFO] [stdout]     |
[INFO] [stdout] 430 |     use std::task::{ContextBuilder, Waker, Poll};
[INFO] [stdout]     |                                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::future::Future`
[INFO] [stdout]    --> src/lib1.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |     use std::future::Future;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `local_waker`
[INFO] [stdout]    --> src/lib1.rs:435:18
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let mut cx = ContextBuilder::from_waker(&waker)
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #118959 <https://github.com/rust-lang/rust/issues/118959> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `local_waker`
[INFO] [stdout]    --> src/lib1.rs:430:21
[INFO] [stdout]     |
[INFO] [stdout] 430 |     use std::task::{ContextBuilder, Waker, Poll};
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #118959 <https://github.com/rust-lang/rust/issues/118959> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `address_length` is never read
[INFO] [stdout]    --> src/lib1.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |     let mut address_length = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `address` is never read
[INFO] [stdout]    --> src/lib1.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let mut address = String::new();
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib1.rs:372:21
[INFO] [stdout]     |
[INFO] [stdout] 372 |                 let mut headers = Headers::new();
[INFO] [stdout]     |                     ----^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `local_waker`
[INFO] [stdout]    --> src/lib1.rs:435:18
[INFO] [stdout]     |
[INFO] [stdout] 435 |     let mut cx = ContextBuilder::from_waker(&waker)
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #118959 <https://github.com/rust-lang/rust/issues/118959> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `local_waker`
[INFO] [stdout]    --> src/lib1.rs:436:10
[INFO] [stdout]     |
[INFO] [stdout] 436 |         .build();
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #118959 <https://github.com/rust-lang/rust/issues/118959> for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `write` exists for struct `worker::Socket`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib1.rs:438:20
[INFO] [stdout]     |
[INFO] [stdout] 438 |     let _ = socket.write(b"");
[INFO] [stdout]     |                    ^^^^^ private field, not a method
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/worker-0.6.1/src/socket.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub struct Socket {
[INFO] [stdout]     | ----------------- doesn't satisfy `worker::Socket: AsyncWriteExt` or `worker::Socket: AsyncWrite`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `worker::Socket: AsyncWrite`
[INFO] [stdout]             which is required by `worker::Socket: AsyncWriteExt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `poll_write` found for struct `worker::Socket` in the current scope
[INFO] [stdout]    --> src/lib1.rs:440:16
[INFO] [stdout]     |
[INFO] [stdout] 440 |         socket.poll_write(initial_data).await?;
[INFO] [stdout]     |                ^^^^^^^^^^ method not found in `worker::Socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_stream` found for struct `worker::WebSocket` in the current scope
[INFO] [stdout]    --> src/lib1.rs:446:35
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut stream = ws_clone.into_stream();
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `into_raw` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 446 -         let mut stream = ws_clone.into_stream();
[INFO] [stdout] 446 +         let mut stream = ws_clone.into_raw();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `split` exists for struct `worker::WebSocket`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib.rs:178:37
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let (mut ws_tx, mut ws_rx) = ws.split();
[INFO] [stdout]     |                                     ^^^^^ method cannot be called on `worker::WebSocket` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/worker-0.6.1/src/websocket.rs:45:1
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub struct WebSocket {
[INFO] [stdout]     | -------------------- doesn't satisfy `worker::WebSocket: StreamExt` or `worker::WebSocket: futures_util::Stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `worker::WebSocket: futures_util::Stream`
[INFO] [stdout]             which is required by `worker::WebSocket: StreamExt`
[INFO] [stdout]             `&worker::WebSocket: futures_util::Stream`
[INFO] [stdout]             which is required by `&worker::WebSocket: StreamExt`
[INFO] [stdout]             `&mut worker::WebSocket: futures_util::Stream`
[INFO] [stdout]             which is required by `&mut worker::WebSocket: StreamExt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `write_all` found for struct `worker::Socket` in the current scope
[INFO] [stdout]    --> src/lib.rs:184:16
[INFO] [stdout]     |
[INFO] [stdout] 184 |     tcp_stream.write_all(&initial_data).await?;
[INFO] [stdout]     |                ^^^^^^^^^ method not found in `worker::Socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `split` exists for struct `worker::Socket`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib.rs:187:55
[INFO] [stdout]     |
[INFO] [stdout] 187 |     let (mut tcp_reader, mut tcp_writer) = tcp_stream.split();
[INFO] [stdout]     |                                                       ^^^^^ method cannot be called on `worker::Socket` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/worker-0.6.1/src/socket.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub struct Socket {
[INFO] [stdout]     | ----------------- doesn't satisfy `worker::Socket: StreamExt` or `worker::Socket: futures_util::Stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `worker::Socket: futures_util::Stream`
[INFO] [stdout]             which is required by `worker::Socket: StreamExt`
[INFO] [stdout]             `&worker::Socket: futures_util::Stream`
[INFO] [stdout]             which is required by `&worker::Socket: StreamExt`
[INFO] [stdout]             `&mut worker::Socket: futures_util::Stream`
[INFO] [stdout]             which is required by `&mut worker::Socket: StreamExt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `std::result::Result<(), worker::Error>` is not a future
[INFO] [stdout]    --> src/lib.rs:225:43
[INFO] [stdout]     |
[INFO] [stdout] 225 |     ws.close(Some(1000), Some("Closing")).await?;
[INFO] [stdout]     |                                           ^^^^^ `std::result::Result<(), worker::Error>` is not a future
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `futures_util::Future` is not implemented for `std::result::Result<(), worker::Error>`
[INFO] [stdout]     = note: std::result::Result<(), worker::Error> must be a future or must implement `IntoFuture` to be awaited
[INFO] [stdout]     = note: required for `std::result::Result<(), worker::Error>` to implement `std::future::IntoFuture`
[INFO] [stdout] help: remove the `.await`
[INFO] [stdout]     |
[INFO] [stdout] 225 -     ws.close(Some(1000), Some("Closing")).await?;
[INFO] [stdout] 225 +     ws.close(Some(1000), Some("Closing"))?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `connect` found for struct `worker::Socket` in the current scope
[INFO] [stdout]    --> src/lib.rs:330:33
[INFO] [stdout]     |
[INFO] [stdout] 330 |     if let Ok(socket) = Socket::connect(format!("{}:{}", &dest.host, dest.port)) {
[INFO] [stdout]     |                                 ^^^^^^^ function or associated item not found in `worker::Socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `connect` found for struct `worker::Socket` in the current scope
[INFO] [stdout]    --> src/lib.rs:350:45
[INFO] [stdout]     |
[INFO] [stdout] 350 |                 if let Ok(socket) = Socket::connect(format!("{}:{}", nat64_addr, dest.port)) {
[INFO] [stdout]     |                                             ^^^^^^^ function or associated item not found in `worker::Socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `connect` found for struct `worker::Socket` in the current scope
[INFO] [stdout]    --> src/lib.rs:361:37
[INFO] [stdout]     |
[INFO] [stdout] 361 |         if let Ok(socket) = Socket::connect(proxy_ip.clone()) {
[INFO] [stdout]     |                                     ^^^^^^^ function or associated item not found in `worker::Socket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:399:9
[INFO] [stdout]     |
[INFO] [stdout] 399 |     let mut headers = Headers::new();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:496:5
[INFO] [stdout]     |
[INFO] [stdout] 478 |   async fn generate_v2ray_config(host: &str, config: &AppConfig) -> Result<Response> {
[INFO] [stdout]     |                                                                     ---------------- expected `std::result::Result<worker::Response, worker::Error>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 496 | /     Response::from_bytes(links.join("\n").into_bytes())?.with_headers(Headers::from_iter(vec![(
[INFO] [stdout] 497 | |         "Content-Type",
[INFO] [stdout] 498 | |         "text/plain;charset=utf-8",
[INFO] [stdout] 499 | |     )]))
[INFO] [stdout]     | |________^ expected `Result<Response, Error>`, found `Response`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `std::result::Result<worker::Response, worker::Error>`
[INFO] [stdout]              found struct `worker::Response`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 496 ~     Ok(Response::from_bytes(links.join("\n").into_bytes())?.with_headers(Headers::from_iter(vec![(
[INFO] [stdout] 497 |         "Content-Type",
[INFO] [stdout] 498 |         "text/plain;charset=utf-8",
[INFO] [stdout] 499 ~     )])))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:565:5
[INFO] [stdout]     |
[INFO] [stdout] 502 |   async fn generate_clash_config(host: &str, config: &AppConfig) -> Result<Response> {
[INFO] [stdout]     |                                                                     ---------------- expected `std::result::Result<worker::Response, worker::Error>` because of return type
[INFO] [stdout] ...
[INFO] [stdout] 565 | /     Response::from_bytes(yaml_content.into_bytes())?.with_headers(Headers::from_iter(vec![(
[INFO] [stdout] 566 | |         "Content-Type",
[INFO] [stdout] 567 | |         "text/plain;charset=utf-8",
[INFO] [stdout] 568 | |     )]))
[INFO] [stdout]     | |________^ expected `Result<Response, Error>`, found `Response`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `std::result::Result<worker::Response, worker::Error>`
[INFO] [stdout]              found struct `worker::Response`
[INFO] [stdout] help: try wrapping the expression in `Ok`
[INFO] [stdout]     |
[INFO] [stdout] 565 ~     Ok(Response::from_bytes(yaml_content.into_bytes())?.with_headers(Headers::from_iter(vec![(
[INFO] [stdout] 566 |         "Content-Type",
[INFO] [stdout] 567 |         "text/plain;charset=utf-8",
[INFO] [stdout] 568 ~     )])))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:627:9
[INFO] [stdout]     |
[INFO] [stdout] 627 |     let mut new_headers = req.headers().clone();
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/lib.rs:630:26
[INFO] [stdout]     |
[INFO] [stdout] 630 |     let proxy_req_init = RequestInit::new()
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 633 |         .with_body(req.bytes().await.ok().map(Into::into));
[INFO] [stdout]     |                                                           - temporary value is freed at the end of this statement
[INFO] [stdout] 634 |
[INFO] [stdout] 635 |     let proxy_req = Request::new_with_init(target_url, &proxy_req_init)?;
[INFO] [stdout]     |                                                        --------------- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow `req` as mutable, as it is not declared as mutable
[INFO] [stdout]    --> src/lib.rs:633:20
[INFO] [stdout]     |
[INFO] [stdout] 633 |         .with_body(req.bytes().await.ok().map(Into::into));
[INFO] [stdout]     |                    ^^^ cannot borrow as mutable
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be mutable
[INFO] [stdout]     |
[INFO] [stdout] 619 | async fn handle_reverse_proxy(mut req: Request, prefix: &str) -> Result<Response> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `worker::Error`
[INFO] [stdout]    --> src/lib.rs:287:91
[INFO] [stdout]     |
[INFO] [stdout] 237 | fn parse_vless_header(data: &[u8]) -> Result<(Uuid, DestinationAddress, Vec<u8>)> {
[INFO] [stdout]     |                                       ------------------------------------------- expected `worker::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 287 |             host = String::from_utf8(data[current_pos..current_pos + domain_len].to_vec())?;
[INFO] [stdout]     |                    -----------------------------------------------------------------------^ the trait `From<FromUtf8Error>` is not implemented for `worker::Error`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this can't be annotated with `?` because it has type `Result<_, FromUtf8Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `worker::Error` implements `From<&str>`
[INFO] [stdout]               `worker::Error` implements `From<JsValue>`
[INFO] [stdout]               `worker::Error` implements `From<KvError>`
[INFO] [stdout]               `worker::Error` implements `From<_::_serde::de::value::Error>`
[INFO] [stdout]               `worker::Error` implements `From<matchit::error::InsertError>`
[INFO] [stdout]               `worker::Error` implements `From<serde_json::Error>`
[INFO] [stdout]               `worker::Error` implements `From<serde_wasm_bindgen::error::Error>`
[INFO] [stdout]               `worker::Error` implements `From<std::convert::Infallible>`
[INFO] [stdout]             and 4 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `md5`
[INFO] [stdout]    --> src/lib.rs:602:32
[INFO] [stdout]     |
[INFO] [stdout] 602 |     let hash = format!("{:x}", md5::compute(text.as_bytes()));
[INFO] [stdout]     |                                ^^^ use of unresolved module or unlinked crate `md5`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `md5`, use `cargo add md5` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:464:17
[INFO] [stdout]     |
[INFO] [stdout] 464 |             let mut addr_parts: Vec<&str> = address_part.rsplitn(2, ':').collect();
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0425, E0433, E0596, E0599, E0658, E0716.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `edge-tunnel-rs` (lib) due to 27 previous errors; 9 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "64a0b47b6388248232cd9ca114e9a7636304cedc4356aea5596495b39ff3895f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64a0b47b6388248232cd9ca114e9a7636304cedc4356aea5596495b39ff3895f", kill_on_drop: false }`
[INFO] [stdout] 64a0b47b6388248232cd9ca114e9a7636304cedc4356aea5596495b39ff3895f
