[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 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 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 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 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 { [INFO] [stdout] | ---------------- expected `std::result::Result` 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`, found `Response` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `std::result::Result` [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 { [INFO] [stdout] | ---------------- expected `std::result::Result` 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`, found `Response` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `std::result::Result` [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 { [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)> { [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` 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`: [INFO] [stdout] `worker::Error` implements `From<&str>` [INFO] [stdout] `worker::Error` implements `From` [INFO] [stdout] `worker::Error` implements `From` [INFO] [stdout] `worker::Error` implements `From<_::_serde::de::value::Error>` [INFO] [stdout] `worker::Error` implements `From` [INFO] [stdout] `worker::Error` implements `From` [INFO] [stdout] `worker::Error` implements `From` [INFO] [stdout] `worker::Error` implements `From` [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