From bfbfa0d47c997450012847d7119ec3961ebd28d7 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 10 Jun 2025 15:27:39 -0400 Subject: [PATCH 1/6] feat(pool): add a Singleton pool type --- Cargo.toml | 3 + src/client/mod.rs | 3 + src/client/pool/mod.rs | 3 + src/client/pool/singleton.rs | 350 ++++++++++++++++++ .../target/rust-analyzer/flycheck0/stderr | 93 +++++ .../target/rust-analyzer/flycheck0/stdout | 202 ++++++++++ 6 files changed, 654 insertions(+) create mode 100644 src/client/pool/mod.rs create mode 100644 src/client/pool/singleton.rs create mode 100644 src/client/pool/target/rust-analyzer/flycheck0/stderr create mode 100644 src/client/pool/target/rust-analyzer/flycheck0/stdout diff --git a/Cargo.toml b/Cargo.toml index e80f491e..bd54ae61 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,6 +42,7 @@ futures-util = { version = "0.3.16", default-features = false, features = ["allo http-body-util = "0.1.0" tokio = { version = "1", features = ["macros", "test-util", "signal"] } tokio-test = "0.4" +tower-test = "0.4" pretty_env_logger = "0.5" [target.'cfg(any(target_os = "linux", target_os = "macos"))'.dev-dependencies] @@ -60,6 +61,7 @@ default = [] full = [ "client", "client-legacy", + "client-pool", "client-proxy", "client-proxy-system", "server", @@ -74,6 +76,7 @@ full = [ client = ["hyper/client", "tokio/net", "dep:tracing", "dep:futures-channel", "dep:tower-service"] client-legacy = ["client", "dep:socket2", "tokio/sync", "dep:libc", "dep:futures-util"] +client-pool = [] client-proxy = ["client", "dep:base64", "dep:ipnet", "dep:percent-encoding"] client-proxy-system = ["dep:system-configuration", "dep:windows-registry"] diff --git a/src/client/mod.rs b/src/client/mod.rs index 0d896030..268cadf0 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -4,5 +4,8 @@ #[cfg(feature = "client-legacy")] pub mod legacy; +#[cfg(feature = "client-pool")] +pub mod pool; + #[cfg(feature = "client-proxy")] pub mod proxy; diff --git a/src/client/pool/mod.rs b/src/client/pool/mod.rs new file mode 100644 index 00000000..c0e9bfec --- /dev/null +++ b/src/client/pool/mod.rs @@ -0,0 +1,3 @@ +//! Composable pool services + +pub mod singleton; diff --git a/src/client/pool/singleton.rs b/src/client/pool/singleton.rs new file mode 100644 index 00000000..8b8a7630 --- /dev/null +++ b/src/client/pool/singleton.rs @@ -0,0 +1,350 @@ +//! Singleton pools +//! +//! The singleton pool combines a MakeService that should only produce a single +//! active connection. It can bundle all concurrent calls to it, so that only +//! one connection is made. All calls to the singleton will return a clone of +//! the inner service once established. +//! +//! This fits the HTTP/2 case well. + +use std::sync::{Arc, Mutex}; +use std::task::{self, Poll}; + +use tokio::sync::oneshot; +use tower_service::Service; + +use self::internal::{DitchGuard, SingletonError, SingletonFuture}; + +type BoxError = Box; + +/// A singleton pool over an inner service. +/// +/// The singleton wraps an inner service maker, bundling all calls to ensure +/// only one service is created. Once made, it returns clones of the made +/// service. +#[derive(Debug)] +pub struct Singleton +where + M: Service, +{ + mk_svc: M, + state: Arc>>, +} + +#[derive(Debug)] +enum State { + Empty, + Making(Vec>), + Made(S), +} + +impl Singleton +where + M: Service, + M::Response: Clone, +{ + /// Create a new singleton pool over an inner make service. + pub fn new(mk_svc: M) -> Self { + Singleton { + mk_svc, + state: Arc::new(Mutex::new(State::Empty)), + } + } + + // pub fn reset? + + /* + /// Retains the inner made service if specified by the predicate. + pub fn retain(&mut self, predicate: F) + where + F: FnMut(&mut M::Response) -> bool, + { + let mut locked = self.state.lock().unwrap(); + match *locked { + State::Empty => {}, + State::Making(..) => {}, + State::Made(mut svc) => { + + } + } + } + */ +} + +impl Service for Singleton +where + M: Service, + M::Response: Clone, + M::Error: Into, +{ + type Response = M::Response; + type Error = SingletonError; + type Future = SingletonFuture; + + fn poll_ready(&mut self, cx: &mut task::Context<'_>) -> Poll> { + if let State::Empty = *self.state.lock().unwrap() { + return self + .mk_svc + .poll_ready(cx) + .map_err(|e| SingletonError(e.into())); + } + Poll::Ready(Ok(())) + } + + fn call(&mut self, dst: Target) -> Self::Future { + let mut locked = self.state.lock().unwrap(); + match *locked { + State::Empty => { + let fut = self.mk_svc.call(dst); + *locked = State::Making(Vec::new()); + SingletonFuture::Driving { + future: fut, + singleton: DitchGuard(Arc::downgrade(&self.state)), + } + } + State::Making(ref mut waiters) => { + let (tx, rx) = oneshot::channel(); + waiters.push(tx); + SingletonFuture::Waiting { rx } + } + State::Made(ref svc) => SingletonFuture::Made { + svc: Some(svc.clone()), + }, + } + } +} + +impl Clone for Singleton +where + M: Service + Clone, +{ + fn clone(&self) -> Self { + Self { + mk_svc: self.mk_svc.clone(), + state: self.state.clone(), + } + } +} + +// Holds some "pub" items that otherwise shouldn't be public. +mod internal { + use std::future::Future; + use std::pin::Pin; + use std::sync::{Mutex, Weak}; + use std::task::{self, Poll}; + + use futures_core::ready; + use pin_project_lite::pin_project; + use tokio::sync::oneshot; + + use super::{BoxError, State}; + + pin_project! { + #[project = SingletonFutureProj] + pub enum SingletonFuture { + Driving { + #[pin] + future: F, + singleton: DitchGuard, + }, + Waiting { + rx: oneshot::Receiver, + }, + Made { + svc: Option, + }, + } + } + + // XXX: pub because of the enum SingletonFuture + pub struct DitchGuard(pub(super) Weak>>); + + impl Future for SingletonFuture + where + F: Future>, + E: Into, + S: Clone, + { + type Output = Result; + + fn poll(self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll { + match self.project() { + SingletonFutureProj::Driving { future, singleton } => { + match ready!(future.poll(cx)) { + Ok(svc) => { + if let Some(state) = singleton.0.upgrade() { + let mut locked = state.lock().unwrap(); + singleton.0 = Weak::new(); + match std::mem::replace(&mut *locked, State::Made(svc.clone())) { + State::Making(waiters) => { + for tx in waiters { + let _ = tx.send(svc.clone()); + } + } + State::Empty | State::Made(_) => { + // shouldn't happen! + unreachable!() + } + } + } + Poll::Ready(Ok(svc)) + } + Err(e) => { + if let Some(state) = singleton.0.upgrade() { + let mut locked = state.lock().unwrap(); + singleton.0 = Weak::new(); + *locked = State::Empty; + } + Poll::Ready(Err(SingletonError(e.into()))) + } + } + } + SingletonFutureProj::Waiting { rx } => match ready!(Pin::new(rx).poll(cx)) { + Ok(svc) => Poll::Ready(Ok(svc)), + Err(_canceled) => Poll::Ready(Err(SingletonError(Canceled.into()))), + }, + SingletonFutureProj::Made { svc } => Poll::Ready(Ok(svc.take().unwrap())), + } + } + } + + impl Drop for DitchGuard { + fn drop(&mut self) { + if let Some(state) = self.0.upgrade() { + if let Ok(mut locked) = state.lock() { + *locked = State::Empty; + } + } + } + } + + // An opaque error type. By not exposing the type, nor being specifically + // Box, we can _change_ the type once we no longer need the Canceled + // error type. This will be possible with the refactor to baton passing. + #[derive(Debug)] + pub struct SingletonError(pub(super) BoxError); + + impl std::fmt::Display for SingletonError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str("singleton connection error") + } + } + + impl std::error::Error for SingletonError { + fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + Some(&*self.0) + } + } + + #[derive(Debug)] + struct Canceled; + + impl std::fmt::Display for Canceled { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str("singleton connection canceled") + } + } + + impl std::error::Error for Canceled {} +} + +#[cfg(test)] +mod tests { + use std::future::Future; + use std::pin::Pin; + use std::task::Poll; + + use tower_service::Service; + + use super::Singleton; + + #[tokio::test] + async fn first_call_drives_subsequent_wait() { + let (mock_svc, mut handle) = tower_test::mock::pair::<(), &'static str>(); + + let mut singleton = Singleton::new(mock_svc); + + handle.allow(1); + crate::common::future::poll_fn(|cx| singleton.poll_ready(cx)) + .await + .unwrap(); + // First call: should go into Driving + let fut1 = singleton.call(()); + // Second call: should go into Waiting + let fut2 = singleton.call(()); + + // Expect exactly one request to the inner service + let ((), send_response) = handle.next_request().await.unwrap(); + send_response.send_response("svc"); + + // Both futures should resolve to the same value + assert_eq!(fut1.await.unwrap(), "svc"); + assert_eq!(fut2.await.unwrap(), "svc"); + } + + #[tokio::test] + async fn made_state_returns_immediately() { + let (mock_svc, mut handle) = tower_test::mock::pair::<(), &'static str>(); + let mut singleton = Singleton::new(mock_svc); + + handle.allow(1); + crate::common::future::poll_fn(|cx| singleton.poll_ready(cx)) + .await + .unwrap(); + // Drive first call to completion + let fut1 = singleton.call(()); + let ((), send_response) = handle.next_request().await.unwrap(); + send_response.send_response("svc"); + assert_eq!(fut1.await.unwrap(), "svc"); + + // Second call should not hit inner service + let res = singleton.call(()).await.unwrap(); + assert_eq!(res, "svc"); + } + + #[tokio::test] + async fn cancel_waiter_does_not_affect_others() { + let (mock_svc, mut handle) = tower_test::mock::pair::<(), &'static str>(); + let mut singleton = Singleton::new(mock_svc); + + crate::common::future::poll_fn(|cx| singleton.poll_ready(cx)) + .await + .unwrap(); + let fut1 = singleton.call(()); + let fut2 = singleton.call(()); + drop(fut2); // cancel one waiter + + let ((), send_response) = handle.next_request().await.unwrap(); + send_response.send_response("svc"); + + assert_eq!(fut1.await.unwrap(), "svc"); + } + + // TODO: this should be able to be improved with a cooperative baton refactor + #[tokio::test] + async fn cancel_driver_cancels_all() { + let (mock_svc, mut handle) = tower_test::mock::pair::<(), &'static str>(); + let mut singleton = Singleton::new(mock_svc); + + crate::common::future::poll_fn(|cx| singleton.poll_ready(cx)) + .await + .unwrap(); + let mut fut1 = singleton.call(()); + let fut2 = singleton.call(()); + + // poll driver just once, and then drop + crate::common::future::poll_fn(move |cx| { + let _ = Pin::new(&mut fut1).poll(cx); + Poll::Ready(()) + }) + .await; + + let ((), send_response) = handle.next_request().await.unwrap(); + send_response.send_response("svc"); + + assert_eq!( + fut2.await.unwrap_err().0.to_string(), + "singleton connection canceled" + ); + } +} diff --git a/src/client/pool/target/rust-analyzer/flycheck0/stderr b/src/client/pool/target/rust-analyzer/flycheck0/stderr new file mode 100644 index 00000000..26d05b8c --- /dev/null +++ b/src/client/pool/target/rust-analyzer/flycheck0/stderr @@ -0,0 +1,93 @@ + 0.112845877s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="legacy_client"}: cargo::core::compiler::fingerprint: fingerprint error for hyper-util v0.1.17 (/home/sean/code/hyper-util)/Check { test: true }/TargetInner { kind: "test", name: "legacy_client", benched: false, ..: with_path("/home/sean/code/hyper-util/tests/legacy_client.rs", Edition2021) } + 0.113026998s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="legacy_client"}: cargo::core::compiler::fingerprint: err: failed to read `/home/sean/code/hyper-util/target/debug/.fingerprint/hyper-util-8c5eca22e264ab85/test-integration-test-legacy_client` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: ::compile + 6: cargo::ops::cargo_compile::compile_ws + 7: cargo::ops::cargo_compile::compile_with_exec + 8: cargo::ops::cargo_compile::compile + 9: cargo::commands::check::exec + 10: ::exec + 11: cargo::main + 12: std::sys::backtrace::__rust_begin_short_backtrace:: + 13: std::rt::lang_start::<()>::{closure#0} + 14: core::ops::function::impls:: for &F>::call_once + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/core/src/ops/function.rs:287:21 + 15: std::panicking::catch_unwind::do_call + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 + 16: std::panicking::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 + 17: std::panic::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 + 18: std::rt::lang_start_internal::{{closure}} + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:175:24 + 19: std::panicking::catch_unwind::do_call + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 + 20: std::panicking::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 + 21: std::panic::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:171:5 + 23: main + 24: __libc_start_call_main + at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16 + 25: __libc_start_main_impl + at ./csu/../csu/libc-start.c:360:3 + 26: + 0.213487562s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="proxy"}: cargo::core::compiler::fingerprint: fingerprint error for hyper-util v0.1.17 (/home/sean/code/hyper-util)/Check { test: true }/TargetInner { kind: "test", name: "proxy", benched: false, ..: with_path("/home/sean/code/hyper-util/tests/proxy.rs", Edition2021) } + 0.213581563s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="proxy"}: cargo::core::compiler::fingerprint: err: failed to read `/home/sean/code/hyper-util/target/debug/.fingerprint/hyper-util-c6bd5b6aa0f73e77/test-integration-test-proxy` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: ::compile + 6: cargo::ops::cargo_compile::compile_ws + 7: cargo::ops::cargo_compile::compile_with_exec + 8: cargo::ops::cargo_compile::compile + 9: cargo::commands::check::exec + 10: ::exec + 11: cargo::main + 12: std::sys::backtrace::__rust_begin_short_backtrace:: + 13: std::rt::lang_start::<()>::{closure#0} + 14: core::ops::function::impls:: for &F>::call_once + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/core/src/ops/function.rs:287:21 + 15: std::panicking::catch_unwind::do_call + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 + 16: std::panicking::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 + 17: std::panic::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 + 18: std::rt::lang_start_internal::{{closure}} + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:175:24 + 19: std::panicking::catch_unwind::do_call + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 + 20: std::panicking::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 + 21: std::panic::catch_unwind + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal + at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:171:5 + 23: main + 24: __libc_start_call_main + at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16 + 25: __libc_start_main_impl + at ./csu/../csu/libc-start.c:360:3 + 26: + Checking hyper-util v0.1.17 (/home/sean/code/hyper-util) +error: could not compile `hyper-util` (test "legacy_client") due to 29 previous errors +error: could not compile `hyper-util` (test "proxy") due to 85 previous errors diff --git a/src/client/pool/target/rust-analyzer/flycheck0/stdout b/src/client/pool/target/rust-analyzer/flycheck0/stdout new file mode 100644 index 00000000..f555db6b --- /dev/null +++ b/src/client/pool/target/rust-analyzer/flycheck0/stdout @@ -0,0 +1,202 @@ +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.101","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/build/proc-macro2-17e32568540fc90a/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/libc-295f477fb058fbb9/build-script-build"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","linked_libs":[],"linked_paths":[],"cfgs":["freebsd12"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/libc-fb1350fc81e9f154/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.101","linked_libs":[],"linked_paths":[],"cfgs":["wrap_proc_macro","proc_macro_span","proc_macro_span_location","proc_macro_span_file"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/proc-macro2-c3506195f8804da6/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.19","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.19/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_ident","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.19/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libunicode_ident-591df15350997623.rlib","/home/sean/code/hyper-util/target/debug/deps/libunicode_ident-591df15350997623.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.41","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/build/quote-9cf6aa672522b25c/build-script-build"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.41","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/quote-29c9639cefb85ff6/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.101","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"proc_macro2","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libproc_macro2-7007d4933373c581.rlib","/home/sean/code/hyper-util/target/debug/deps/libproc_macro2-7007d4933373c581.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libc","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/liblibc-09bc1e25b6956a3f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.41","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"quote","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libquote-a91dae4ea458b48f.rlib","/home/sean/code/hyper-util/target/debug/deps/libquote-a91dae4ea458b48f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@2.0.106","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.106/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.106/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","full","parsing","printing","proc-macro","visit-mut"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libsyn-0931b3da662252d7.rlib","/home/sean/code/hyper-util/target/debug/deps/libsyn-0931b3da662252d7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.16","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_project_lite","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_project_lite-d39827a1100fb9ef.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bytes@1.10.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bytes","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libbytes-9d3487932bdbd853.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-core@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_core","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_core-928ec4daade86234.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-macros@2.5.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-macros-2.5.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"tokio_macros","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-macros-2.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_macros-6d9feeb873d3b48c.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#signal-hook-registry@1.4.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signal-hook-registry-1.4.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"signal_hook_registry","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signal-hook-registry-1.4.6/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libsignal_hook_registry-23bc263d874f94f9.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#mio@1.0.4","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mio-1.0.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"mio","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mio-1.0.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["net","os-ext","os-poll"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libmio-de36dacb5509a274.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio@1.47.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bytes","default","io-util","libc","macros","mio","rt","signal","signal-hook-registry","sync","test-util","time","tokio-macros"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio-90a7f091d7d9e373.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fnv@1.0.7","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fnv","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfnv-77c502cd42f57b8f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.15","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.15/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"itoa","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.15/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libitoa-a41e1811ddda7bbe.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http@1.3.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttp-1011bad67192e6a8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"once_cell","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","race","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libonce_cell-a196c0519b93602c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["result","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/serde_core-c44f039cd676198c/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#memchr@2.7.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.7.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"memchr","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.7.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libmemchr-0f957f453f209228.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#aho-corasick@1.1.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aho-corasick-1.1.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"aho_corasick","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aho-corasick-1.1.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["perf-literal","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libaho_corasick-4456e926ab7cf816.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/serde_core-c95867eba98b952a/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing-core@0.1.34","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.34/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tracing_core","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.34/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["once_cell","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtracing_core-ea0328b9508f171e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"equivalent","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libequivalent-dbd0be9061b7acbc.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/serde-e58c1d6fb639cf0d/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/httparse-05246e2aa92cc113/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-utils@0.1.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_utils","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_utils-7f3687f361877058.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex-syntax@0.8.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-syntax-0.8.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex_syntax","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-syntax-0.8.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libregex_syntax-37398a1b76c1964b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-sink@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_sink","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_sink-0305eccffc39046b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.16.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhashbrown-14a51d3705e84ead.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#indexmap@2.11.4","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.11.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"indexmap","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.11.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libindexmap-1dd5229ddbfd6817.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-util@0.7.16","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_util","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.16/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["codec","default","io"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_util-6a888b5c689da964.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex-automata@0.4.11","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.11/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex_automata","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.11/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","dfa-onepass","hybrid","meta","nfa-backtrack","nfa-pikevm","nfa-thompson","perf-inline","perf-literal","perf-literal-multisubstring","perf-literal-substring","std","syntax"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libregex_automata-781ca882576488dd.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","linked_libs":[],"linked_paths":[],"cfgs":["httparse_simd_neon_intrinsics","httparse_simd"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/httparse-4a4751aff91f1e29/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","linked_libs":[],"linked_paths":[],"cfgs":["if_docsrs_then_no_serde_core"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/serde-e612e86ffa702f9d/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.41","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tracing","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtracing-2e3c89be3ca065d5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_core","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["result","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libserde_core-595310025e4486d8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http-body@1.0.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http_body","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttp_body-9ed23291c56a6c25.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async-stream-impl@0.3.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-impl-0.3.6/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"async_stream_impl","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-impl-0.3.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libasync_stream_impl-35dbe5f5891db963.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#atomic-waker@1.1.2","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"atomic_waker","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libatomic_waker-20260b4402dc237a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slab@0.4.11","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.11/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"slab","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.11/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libslab-0f7d78e81fd9c627.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#try-lock@0.2.5","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/try-lock-0.2.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"try_lock","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/try-lock-0.2.5/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtry_lock-014b8dacdcc310d6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#want@0.3.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/want-0.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"want","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/want-0.3.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libwant-abca090310cbd894.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#h2@0.4.12","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/h2-0.4.12/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"h2","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/h2-0.4.12/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libh2-e627dbaa5fbc640f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async-stream@0.3.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-0.3.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"async_stream","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-0.3.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libasync_stream-cc5fcf397c17217d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libserde-c950a6e44566446a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"httparse","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttparse-18c0333df5b5f665.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex@1.11.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-1.11.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-1.11.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["perf","perf-backtrack","perf-cache","perf-dfa","perf-inline","perf-literal","perf-onepass","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libregex-a4f666b115698f05.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-stream@0.1.17","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-stream-0.1.17/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_stream","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-stream-0.1.17/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","time"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_stream-2a24862dec233543.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-channel@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_channel","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_channel-c83de858d5464c85.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project-internal@1.1.10","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-internal-1.1.10/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"pin_project_internal","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-internal-1.1.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_project_internal-902211fe168c8424.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#is-terminal@0.4.16","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/is-terminal-0.4.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"is_terminal","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/is-terminal-0.4.16/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libis_terminal-083fdd33080d6c28.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#smallvec@1.15.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"smallvec","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["const_generics","const_new"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libsmallvec-70d5fd5aa87b6bea.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#no-std-net@0.6.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/no-std-net-0.6.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_std_net","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/no-std-net-0.6.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libno_std_net-b53e0fabdd488e64.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-task@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_task","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_task-fdb245a69f872492.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#termcolor@1.4.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/termcolor-1.4.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"termcolor","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/termcolor-1.4.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtermcolor-636a756f6388b07c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#humantime@2.3.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-2.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"humantime","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-2.3.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhumantime-bbd29123e033ddcd.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httpdate@1.0.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httpdate-1.0.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"httpdate","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httpdate-1.0.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttpdate-785a8fde9f31b304.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#log@0.4.28","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.28/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"log","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.28/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/liblog-e8b417e6864a09da.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#env_logger@0.10.2","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/env_logger-0.10.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"env_logger","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/env_logger-0.10.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["auto-color","color","default","humantime","regex"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libenv_logger-d720e88bcc0ecf88.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hyper@1.7.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.7.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["client","default","full","http1","http2","server"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhyper-5b1212735e694a60.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-util@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_util","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_util-22961d7fc5fc1d1b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pnet_base@0.35.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_base-0.35.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pnet_base","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_base-0.35.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpnet_base-9013f661c0e20c00.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project@1.1.10","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-1.1.10/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_project","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-1.1.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_project-86948608a15aabb1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-test@0.4.4","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-test-0.4.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_test","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-test-0.4.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_test-978d3de8187555a6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ipnetwork@0.20.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ipnetwork-0.20.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ipnetwork","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ipnetwork-0.20.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","serde"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libipnetwork-912a4b9886749070.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pnet_sys@0.35.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_sys-0.35.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pnet_sys","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_sys-0.35.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpnet_sys-a8ce4ead516b8adc.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-service@0.3.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_service","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtower_service-0c244bdadb1c689c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-layer@0.3.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-layer-0.3.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_layer","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-layer-0.3.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtower_layer-3838c515db690a98.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-test@0.4.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-test-0.4.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_test","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-test-0.4.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtower_test-179ef0e34e66d510.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pnet_datalink@0.35.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_datalink-0.35.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pnet_datalink","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_datalink-0.35.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpnet_datalink-85f3d03178b67455.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pretty_env_logger@0.5.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_env_logger-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pretty_env_logger","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_env_logger-0.5.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpretty_env_logger-e62c76c3b7596a70.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http-body-util@0.1.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http_body_util","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttp_body_util-c9e02e90a2a2b34c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: function `poll_fn` is never used\n --> src/common/future.rs:8:15\n |\n8 | pub(crate) fn poll_fn(f: F) -> PollFn\n | ^^^^^^^\n |\n = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"`#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default","rendered":null,"spans":[]}],"level":"warning","message":"function `poll_fn` is never used","spans":[{"byte_end":160,"byte_start":153,"column_end":22,"column_start":15,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":8,"line_start":8,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":22,"highlight_start":15,"text":"pub(crate) fn poll_fn(f: F) -> PollFn"}]}],"code":{"code":"dead_code","explanation":null}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: struct `PollFn` is never constructed\n --> src/common/future.rs:15:19\n |\n15 | pub(crate) struct PollFn {\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[],"level":"warning","message":"struct `PollFn` is never constructed","spans":[{"byte_end":281,"byte_start":275,"column_end":25,"column_start":19,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":15,"line_start":15,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":19,"text":"pub(crate) struct PollFn {"}]}],"code":{"code":"dead_code","explanation":null}}} +{"reason":"compiler-artifact","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhyper_util-1ea9d177f7e6705a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/test_utils/mod.rs:15:17\n |\n15 | use hyper_util::client::legacy::connect::HttpConnector;\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":366,"byte_start":360,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":15,"line_start":15,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::HttpConnector;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/test_utils/mod.rs:16:17\n |\n16 | use hyper_util::client::legacy::connect::{Connected, Connection};\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":422,"byte_start":416,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":16,"line_start":16,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::{Connected, Connection};"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tokio::net::TcpStream`\n --> tests/test_utils/mod.rs:11:5\n |\n11 | use tokio::net::TcpStream;\n | ^^^^^^^^^^^^^^^^^^^^^ no `TcpStream` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:44:26\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n44 | | pub use tcp::stream::TcpStream;\n | | ^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing this struct instead\n |\n11 - use tokio::net::TcpStream;\n11 + use std::net::TcpStream;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":1,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":1,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":1,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" mod udp;"},{"highlight_end":1,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":1,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":1,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1562,"byte_start":1553,"column_end":35,"column_start":26,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":44,"line_start":44,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":26,"text":" pub use tcp::stream::TcpStream;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing this struct instead","rendered":null,"spans":[{"byte_end":310,"byte_start":289,"column_end":26,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":11,"line_start":11,"suggested_replacement":"std::net::TcpStream","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":26,"highlight_start":5,"text":"use tokio::net::TcpStream;"}]}]}],"level":"error","message":"unresolved import `tokio::net::TcpStream`","spans":[{"byte_end":310,"byte_start":289,"column_end":26,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"no `TcpStream` in `net`","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":5,"text":"use tokio::net::TcpStream;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:23:17\n |\n23 | use hyper_util::client::legacy::connect::{capture_connection, HttpConnector};\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":603,"byte_start":597,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":23,"line_start":23,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::{capture_connection, HttpConnector};"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:24:17\n |\n24 | use hyper_util::client::legacy::Client;\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":681,"byte_start":675,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":24,"line_start":24,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::Client;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `hyper_util::rt::TokioIo`\n --> tests/test_utils/mod.rs:17:5\n |\n17 | use hyper_util::rt::TokioIo;\n | ^^^^^^^^^^^^^^^^^^^^^^^ no `TokioIo` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"unresolved import `hyper_util::rt::TokioIo`","spans":[{"byte_end":493,"byte_start":470,"column_end":28,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"no `TokioIo` in `rt`","line_end":17,"line_start":17,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":28,"highlight_start":5,"text":"use hyper_util::rt::TokioIo;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved imports `hyper_util::rt::TokioExecutor`, `hyper_util::rt::TokioIo`\n --> tests/legacy_client.rs:25:22\n |\n25 | use hyper_util::rt::{TokioExecutor, TokioIo};\n | ^^^^^^^^^^^^^ ^^^^^^^ no `TokioIo` in `rt`\n | |\n | no `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]},{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"unresolved imports `hyper_util::rt::TokioExecutor`, `hyper_util::rt::TokioIo`","spans":[{"byte_end":733,"byte_start":720,"column_end":35,"column_start":22,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TokioExecutor` in `rt`","line_end":25,"line_start":25,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":22,"text":"use hyper_util::rt::{TokioExecutor, TokioIo};"}]},{"byte_end":742,"byte_start":735,"column_end":44,"column_start":37,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TokioIo` in `rt`","line_end":25,"line_start":25,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":37,"text":"use hyper_util::rt::{TokioExecutor, TokioIo};"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `futures_channel`\n --> tests/test_utils/mod.rs:5:5\n |\n5 | use futures_channel::mpsc;\n | ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_channel`\n |\nhelp: there is a crate or module with a similar name\n |\n5 - use futures_channel::mpsc;\n5 + use futures_core::mpsc;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"there is a crate or module with a similar name","rendered":null,"spans":[{"byte_end":107,"byte_start":92,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":5,"line_start":5,"suggested_replacement":"futures_core","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::mpsc;"}]}]}],"level":"error","message":"unresolved import `futures_channel`","spans":[{"byte_end":107,"byte_start":92,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `futures_channel`","line_end":5,"line_start":5,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::mpsc;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `futures_channel`\n --> tests/legacy_client.rs:12:5\n |\n12 | use futures_channel::{mpsc, oneshot};\n | ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_channel`\n |\nhelp: there is a crate or module with a similar name\n |\n12 - use futures_channel::{mpsc, oneshot};\n12 + use futures_core::{mpsc, oneshot};\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"there is a crate or module with a similar name","rendered":null,"spans":[{"byte_end":241,"byte_start":226,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":"futures_core","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::{mpsc, oneshot};"}]}]}],"level":"error","message":"unresolved import `futures_channel`","spans":[{"byte_end":241,"byte_start":226,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `futures_channel`","line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::{mpsc, oneshot};"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tokio::net::TcpListener`\n --> tests/legacy_client.rs:808:9\n |\n808 | use tokio::net::TcpListener;\n | ^^^^^^^^^^^^^^^^^^^^^^^ no `TcpListener` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n 38 | / cfg_net! {\n 39 | | mod lookup_host;\n 40 | | pub use lookup_host::lookup_host;\n... |\n 43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n 52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing one of these structs instead\n |\n808 - use tokio::net::TcpListener;\n808 + use crate::TcpListener;\n |\n808 - use tokio::net::TcpListener;\n808 + use std::net::TcpListener;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs instead","rendered":null,"spans":[{"byte_end":26954,"byte_start":26931,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":808,"line_start":808,"suggested_replacement":"crate::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]},{"byte_end":26954,"byte_start":26931,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":808,"line_start":808,"suggested_replacement":"std::net::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}]}],"level":"error","message":"unresolved import `tokio::net::TcpListener`","spans":[{"byte_end":26954,"byte_start":26931,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TcpListener` in `net`","line_end":808,"line_start":808,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tokio::net::TcpListener`\n --> tests/legacy_client.rs:889:9\n |\n889 | use tokio::net::TcpListener;\n | ^^^^^^^^^^^^^^^^^^^^^^^ no `TcpListener` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n 38 | / cfg_net! {\n 39 | | mod lookup_host;\n 40 | | pub use lookup_host::lookup_host;\n... |\n 43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n 52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing one of these structs instead\n |\n889 - use tokio::net::TcpListener;\n889 + use crate::TcpListener;\n |\n889 - use tokio::net::TcpListener;\n889 + use std::net::TcpListener;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs instead","rendered":null,"spans":[{"byte_end":29977,"byte_start":29954,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":889,"line_start":889,"suggested_replacement":"crate::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]},{"byte_end":29977,"byte_start":29954,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":889,"line_start":889,"suggested_replacement":"std::net::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}]}],"level":"error","message":"unresolved import `tokio::net::TcpListener`","spans":[{"byte_end":29977,"byte_start":29954,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TcpListener` in `net`","line_end":889,"line_start":889,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:50:50\n |\n50 | let client = Client::builder(hyper_util::rt::TokioExecutor::new()).build(\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":1452,"byte_start":1439,"column_end":63,"column_start":50,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":50,"line_start":50,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":63,"highlight_start":50,"text":" let client = Client::builder(hyper_util::rt::TokioExecutor::new()).build("}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioIo` in `rt`\n --> tests/legacy_client.rs:1107:36\n |\n1107 | inner: hyper_util::rt::TokioIo::new(mock),\n | ^^^^^^^ could not find `TokioIo` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioIo` in `rt`","spans":[{"byte_end":38654,"byte_start":38647,"column_end":43,"column_start":36,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioIo` in `rt`","line_end":1107,"line_start":1107,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":43,"highlight_start":36,"text":" inner: hyper_util::rt::TokioIo::new(mock),"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1220:18\n |\n1220 | impl hyper_util::client::legacy::connect::Connection for MockConnection {\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":43841,"byte_start":43835,"column_end":24,"column_start":18,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1220,"line_start":1220,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":18,"text":"impl hyper_util::client::legacy::connect::Connection for MockConnection {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1223:40\n |\n1223 | fn connected(&self) -> hyper_util::client::legacy::connect::Connected {\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":44060,"byte_start":44054,"column_end":46,"column_start":40,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1223,"line_start":1223,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":46,"highlight_start":40,"text":" fn connected(&self) -> hyper_util::client::legacy::connect::Connected {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1224:21\n |\n1224 | hyper_util::client::legacy::connect::Connected::new()\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":44117,"byte_start":44111,"column_end":27,"column_start":21,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1224,"line_start":1224,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":27,"highlight_start":21,"text":" hyper_util::client::legacy::connect::Connected::new()"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1346:30\n |\n1346 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":49915,"byte_start":49909,"column_end":36,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1346,"line_start":1346,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":30,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:1346:78\n |\n1346 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":49970,"byte_start":49957,"column_end":91,"column_start":78,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":1346,"line_start":1346,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":91,"highlight_start":78,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1398:30\n |\n1398 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":52788,"byte_start":52782,"column_end":36,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1398,"line_start":1398,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":30,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:1398:78\n |\n1398 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":52843,"byte_start":52830,"column_end":91,"column_start":78,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":1398,"line_start":1398,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":91,"highlight_start":78,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1465:30\n |\n1465 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":56193,"byte_start":56187,"column_end":36,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1465,"line_start":1465,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":30,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:1465:78\n |\n1465 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":56248,"byte_start":56235,"column_end":91,"column_start":78,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":1465,"line_start":1465,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":91,"highlight_start":78,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/test_utils/mod.rs:58:9\n |\n58 | tower_service::Service::::poll_ready(&mut self.http, cx)\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\nhelp: consider importing this trait\n |\n 1 + use hyper::service::Service;\n |\nhelp: if you import `Service`, refer to it directly\n |\n58 - tower_service::Service::::poll_ready(&mut self.http, cx)\n58 + Service::::poll_ready(&mut self.http, cx)\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]},{"children":[],"code":null,"level":"help","message":"consider importing this trait","rendered":null,"spans":[{"byte_end":0,"byte_start":0,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":1,"line_start":1,"suggested_replacement":"use hyper::service::Service;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::pin::Pin;"}]}]},{"children":[],"code":null,"level":"help","message":"if you import `Service`, refer to it directly","rendered":null,"spans":[{"byte_end":1692,"byte_start":1677,"column_end":24,"column_start":9,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":58,"line_start":58,"suggested_replacement":"","suggestion_applicability":"Unspecified","text":[{"highlight_end":24,"highlight_start":9,"text":" tower_service::Service::::poll_ready(&mut self.http, cx)"}]}]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":1690,"byte_start":1677,"column_end":22,"column_start":9,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":58,"line_start":58,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":22,"highlight_start":9,"text":" tower_service::Service::::poll_ready(&mut self.http, cx)"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TcpListener` in `net`\n --> tests/legacy_client.rs:93:30\n |\n93 | let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();\n | ^^^^^^^^^^^ could not find `TcpListener` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing one of these structs\n |\n 3 + use crate::TcpListener;\n |\n 3 + use std::net::TcpListener;\n |\nhelp: if you import `TcpListener`, refer to it directly\n |\n93 - let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();\n93 + let server = TcpListener::bind(\"127.0.0.1:0\").await.unwrap();\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs","rendered":null,"spans":[{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use crate::TcpListener;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use std::net::TcpListener;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]}]},{"children":[],"code":null,"level":"help","message":"if you import `TcpListener`, refer to it directly","rendered":null,"spans":[{"byte_end":2841,"byte_start":2829,"column_end":30,"column_start":18,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":93,"line_start":93,"suggested_replacement":"","suggestion_applicability":"Unspecified","text":[{"highlight_end":30,"highlight_start":18,"text":" let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();"}]}]}],"level":"error","message":"failed to resolve: could not find `TcpListener` in `net`","spans":[{"byte_end":2852,"byte_start":2841,"column_end":41,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TcpListener` in `net`","line_end":93,"line_start":93,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":30,"text":" let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `server` in `hyper_util`\n --> tests/legacy_client.rs:824:39\n |\n824 | let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());\n | ^^^^^^ could not find `server` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:14:9\n |\n 13 | #[cfg(feature = \"server\")]\n | ------------------ the item is gated behind the `server` feature\n 14 | pub mod server;\n | ^^^^^^\nhelp: consider importing one of these structs\n |\n 3 + use crate::thread::Builder;\n |\n 3 + use std::thread::Builder;\n |\n 3 + use http::request::Builder;\n |\n 3 + use http::response::Builder;\n |\n = and 7 other candidates\nhelp: if you import `Builder`, refer to it directly\n |\n824 - let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());\n824 + let mut builder = Builder::new(TokioExecutor::new());\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":344,"byte_start":326,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `server` feature","line_end":13,"line_start":13,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"server\")]"}]},{"byte_end":361,"byte_start":355,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":14,"line_start":14,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod server;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs","rendered":null,"spans":[{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use crate::thread::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use std::thread::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use http::request::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use http::response::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use http::uri::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::client::conn::http1::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::client::conn::http2::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::server::conn::http1::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::server::conn::http2::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use tokio::runtime::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use tokio_test::io::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]}]},{"children":[],"code":null,"level":"help","message":"if you import `Builder`, refer to it directly","rendered":null,"spans":[{"byte_end":27529,"byte_start":27497,"column_end":59,"column_start":27,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":824,"line_start":824,"suggested_replacement":"","suggestion_applicability":"Unspecified","text":[{"highlight_end":59,"highlight_start":27,"text":" let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());"}]}]}],"level":"error","message":"failed to resolve: could not find `server` in `hyper_util`","spans":[{"byte_end":27515,"byte_start":27509,"column_end":45,"column_start":39,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `server` in `hyper_util`","line_end":824,"line_start":824,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":39,"text":" let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0412]: cannot find type `TokioIo` in module `hyper_util::rt`\n --> tests/legacy_client.rs:1086:28\n |\n1086 | inner: hyper_util::rt::TokioIo,\n | ^^^^^^^ not found in `hyper_util::rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"cannot find type `TokioIo` in module `hyper_util::rt`","spans":[{"byte_end":37688,"byte_start":37681,"column_end":35,"column_start":28,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"not found in `hyper_util::rt`","line_end":1086,"line_start":1086,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":28,"text":" inner: hyper_util::rt::TokioIo,"}]}],"code":{"code":"E0412","explanation":"A used type name is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/test_utils/mod.rs:51:6\n |\n51 | impl tower_service::Service for DebugConnector {\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":1289,"byte_start":1276,"column_end":19,"column_start":6,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":51,"line_start":51,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":6,"text":"impl tower_service::Service for DebugConnector {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/test_utils/mod.rs:53:36\n |\n53 | type Error = >::Error;\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":1406,"byte_start":1393,"column_end":49,"column_start":36,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":53,"line_start":53,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":36,"text":" type Error = >::Error;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/legacy_client.rs:1253:6\n |\n1253 | impl tower_service::Service for MockConnector {\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":45122,"byte_start":45109,"column_end":19,"column_start":6,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":1253,"line_start":1253,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":6,"text":"impl tower_service::Service for MockConnector {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"Some errors have detailed explanations: E0412, E0432, E0433.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"Some errors have detailed explanations: E0412, E0432, E0433.","spans":[],"code":null}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"For more information about an error, try `rustc --explain E0412`.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"For more information about an error, try `rustc --explain E0412`.","spans":[],"code":null}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/proxy.rs:5:17\n |\n 5 | use hyper_util::client::legacy::connect::proxy::{SocksV4, SocksV5, Tunnel};\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":139,"byte_start":133,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":5,"line_start":5,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::proxy::{SocksV4, SocksV5, Tunnel};"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/proxy.rs:6:17\n |\n 6 | use hyper_util::client::legacy::connect::HttpConnector;\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":215,"byte_start":209,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":6,"line_start":6,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::HttpConnector;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved imports `tokio::net::TcpListener`, `tokio::net::TcpStream`\n --> tests/proxy.rs:2:18\n |\n 2 | use tokio::net::{TcpListener, TcpStream};\n | ^^^^^^^^^^^ ^^^^^^^^^ no `TcpStream` in `net`\n | |\n | no `TcpListener` in `net`\n |\n = help: consider importing this struct instead:\n std::net::TcpListener\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\n = help: consider importing this struct instead:\n std::net::TcpStream\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:44:26\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n44 | | pub use tcp::stream::TcpStream;\n | | ^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"consider importing this struct instead:\nstd::net::TcpListener","rendered":null,"spans":[]},{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":1,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":1,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":1,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" mod udp;"},{"highlight_end":1,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":1,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":1,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing this struct instead:\nstd::net::TcpStream","rendered":null,"spans":[]},{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1562,"byte_start":1553,"column_end":35,"column_start":26,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":44,"line_start":44,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":26,"text":" pub use tcp::stream::TcpStream;"}]}]}],"level":"error","message":"unresolved imports `tokio::net::TcpListener`, `tokio::net::TcpStream`","spans":[{"byte_end":74,"byte_start":63,"column_end":29,"column_start":18,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"no `TcpListener` in `net`","line_end":2,"line_start":2,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":29,"highlight_start":18,"text":"use tokio::net::{TcpListener, TcpStream};"}]},{"byte_end":85,"byte_start":76,"column_end":40,"column_start":31,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"no `TcpStream` in `net`","line_end":2,"line_start":2,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":31,"text":"use tokio::net::{TcpListener, TcpStream};"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tower_service`\n --> tests/proxy.rs:3:5\n |\n3 | use tower_service::Service;\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"unresolved import `tower_service`","spans":[{"byte_end":105,"byte_start":92,"column_end":18,"column_start":5,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":3,"line_start":3,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":18,"highlight_start":5,"text":"use tower_service::Service;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:11:15\n |\n11 | let tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":366,"byte_start":328,"column_end":53,"column_start":15,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":53,"highlight_start":15,"text":" let tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:17:21\n |\n17 | let _conn = connector\n | _____________________^\n18 | | .call(\"https://hyper.rs\".parse().unwrap())\n19 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":718,"byte_start":635,"column_end":19,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":19,"line_start":17,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":30,"highlight_start":21,"text":" let _conn = connector"},{"highlight_end":55,"highlight_start":1,"text":" .call(\"https://hyper.rs\".parse().unwrap())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:24:27\n |\n24 | let (mut io, _) = tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":842,"byte_start":824,"column_end":45,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":24,"line_start":24,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":27,"text":" let (mut io, _) = tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:26:17\n |\n26 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":912,"byte_start":910,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":26,"line_start":26,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:26:17\n |\n26 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":933,"byte_start":910,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":26,"line_start":26,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:31:9\n |\n31 | / io.write_all(b\"HTTP/1.1 200 OK\\r\\n\\r\\n\")\n32 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":1148,"byte_start":1089,"column_end":19,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":32,"line_start":31,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" io.write_all(b\"HTTP/1.1 200 OK\\r\\n\\r\\n\")"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:43:21\n |\n43 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":1392,"byte_start":1354,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:47:22\n |\n47 | let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":1609,"byte_start":1571,"column_end":60,"column_start":22,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":47,"line_start":47,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":60,"highlight_start":22,"text":" let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:58:20\n |\n58 | let conn = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2082,"byte_start":2050,"column_end":52,"column_start":20,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":58,"line_start":58,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":20,"text":" let conn = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:61:9\n |\n61 | tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2187,"byte_start":2151,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":61,"line_start":61,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:64:17\n |\n64 | let n = tcp.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2281,"byte_start":2257,"column_end":41,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":64,"line_start":64,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":17,"text":" let n = tcp.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:74:34\n |\n74 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2635,"byte_start":2611,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":74,"line_start":74,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:78:17\n |\n78 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2745,"byte_start":2736,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":78,"line_start":78,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:78:17\n |\n78 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2766,"byte_start":2736,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":78,"line_start":78,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:81:9\n |\n81 | to_client.write_all(&[0x05, 0x00]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2885,"byte_start":2845,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":81,"line_start":81,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x00]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:87:17\n |\n87 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3172,"byte_start":3142,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":87,"line_start":87,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:90:29\n |\n90 | let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3297,"byte_start":3260,"column_end":66,"column_start":29,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":90,"line_start":90,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":66,"highlight_start":29,"text":" let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:93:9\n |\n93 | to_client.write_all(&message).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3437,"byte_start":3402,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":93,"line_start":93,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:109:27\n |\n109 | let (mut io, _) = target_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3951,"byte_start":3926,"column_end":52,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":109,"line_start":109,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":27,"text":" let (mut io, _) = target_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:112:17\n |\n112 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4022,"byte_start":4020,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":112,"line_start":112,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:112:17\n |\n112 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4043,"byte_start":4020,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":112,"line_start":112,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:115:9\n |\n115 | io.write_all(b\"Goodbye!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4150,"byte_start":4119,"column_end":40,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":115,"line_start":115,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":9,"text":" io.write_all(b\"Goodbye!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:126:21\n |\n126 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4429,"byte_start":4391,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":126,"line_start":126,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:130:22\n |\n130 | let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4646,"byte_start":4608,"column_end":60,"column_start":22,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":130,"line_start":130,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":60,"highlight_start":22,"text":" let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:142:20\n |\n142 | let conn = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5167,"byte_start":5135,"column_end":52,"column_start":20,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":142,"line_start":142,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":20,"text":" let conn = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:145:9\n |\n145 | tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5272,"byte_start":5236,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":145,"line_start":145,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:148:17\n |\n148 | let n = tcp.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5366,"byte_start":5342,"column_end":41,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":148,"line_start":148,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":17,"text":" let n = tcp.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:158:34\n |\n158 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5720,"byte_start":5696,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":158,"line_start":158,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:162:17\n |\n162 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5830,"byte_start":5821,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":162,"line_start":162,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:162:17\n |\n162 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5851,"byte_start":5821,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":162,"line_start":162,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:165:9\n |\n165 | to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5970,"byte_start":5930,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":165,"line_start":165,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:168:17\n |\n168 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6061,"byte_start":6031,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":168,"line_start":168,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:174:9\n |\n174 | to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6331,"byte_start":6291,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":174,"line_start":174,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:177:17\n |\n177 | let n = to_client.read(&mut buf).await.expect(\"read 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6425,"byte_start":6395,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":177,"line_start":177,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:183:29\n |\n183 | let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6744,"byte_start":6707,"column_end":66,"column_start":29,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":183,"line_start":183,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":66,"highlight_start":29,"text":" let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:186:9\n |\n186 | to_client.write_all(&message).await.expect(\"write 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6884,"byte_start":6849,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":186,"line_start":186,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:202:27\n |\n202 | let (mut io, _) = target_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7398,"byte_start":7373,"column_end":52,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":202,"line_start":202,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":27,"text":" let (mut io, _) = target_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:205:17\n |\n205 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7469,"byte_start":7467,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":205,"line_start":205,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:205:17\n |\n205 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7490,"byte_start":7467,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":205,"line_start":205,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:208:9\n |\n208 | io.write_all(b\"Goodbye!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7597,"byte_start":7566,"column_end":40,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":208,"line_start":208,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":9,"text":" io.write_all(b\"Goodbye!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:219:21\n |\n219 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7894,"byte_start":7856,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":219,"line_start":219,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:232:21\n |\n232 | let _conn = connector\n | _____________________^\n233 | | .call(\"https://hyper.rs:443\".try_into().unwrap())\n234 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8499,"byte_start":8409,"column_end":19,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":234,"line_start":232,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":30,"highlight_start":21,"text":" let _conn = connector"},{"highlight_end":62,"highlight_start":1,"text":" .call(\"https://hyper.rs:443\".try_into().unwrap())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:244:34\n |\n244 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8822,"byte_start":8798,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":244,"line_start":244,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:248:17\n |\n248 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8932,"byte_start":8923,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":248,"line_start":248,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:248:17\n |\n248 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8953,"byte_start":8923,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":248,"line_start":248,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:251:9\n |\n251 | to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9072,"byte_start":9032,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":251,"line_start":251,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:254:17\n |\n254 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9163,"byte_start":9133,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":254,"line_start":254,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:260:9\n |\n260 | to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9433,"byte_start":9393,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":260,"line_start":260,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:263:17\n |\n263 | let n = to_client.read(&mut buf).await.expect(\"read 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9527,"byte_start":9497,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":263,"line_start":263,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:275:9\n |\n275 | to_client.write_all(&message).await.expect(\"write 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":10003,"byte_start":9968,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":275,"line_start":275,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:285:21\n |\n285 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":10263,"byte_start":10225,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":285,"line_start":285,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:298:21\n |\n298 | let _conn = connector\n | _____________________^\n299 | | .call(\"https://hyper.rs:443\".try_into().unwrap())\n300 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":10867,"byte_start":10777,"column_end":19,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":300,"line_start":298,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":30,"highlight_start":21,"text":" let _conn = connector"},{"highlight_end":62,"highlight_start":1,"text":" .call(\"https://hyper.rs:443\".try_into().unwrap())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:310:34\n |\n310 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11190,"byte_start":11166,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":310,"line_start":310,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:314:17\n |\n314 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11300,"byte_start":11291,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":314,"line_start":314,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:314:17\n |\n314 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11321,"byte_start":11291,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":314,"line_start":314,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:317:9\n |\n317 | to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11440,"byte_start":11400,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:320:17\n |\n320 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11531,"byte_start":11501,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:326:9\n |\n326 | to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11801,"byte_start":11761,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":326,"line_start":326,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:329:17\n |\n329 | let n = to_client.read(&mut buf).await.expect(\"read 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11895,"byte_start":11865,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":329,"line_start":329,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:336:9\n |\n336 | to_client.write_all(&message).await.expect(\"write 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":12231,"byte_start":12196,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":336,"line_start":336,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:346:21\n |\n346 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":12462,"byte_start":12424,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":346,"line_start":346,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:350:22\n |\n350 | let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":12679,"byte_start":12641,"column_end":60,"column_start":22,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":350,"line_start":350,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":60,"highlight_start":22,"text":" let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:361:20\n |\n361 | let conn = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13152,"byte_start":13120,"column_end":52,"column_start":20,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":361,"line_start":361,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":20,"text":" let conn = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:364:9\n |\n364 | tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13257,"byte_start":13221,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":364,"line_start":364,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:367:17\n |\n367 | let n = tcp.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13351,"byte_start":13327,"column_end":41,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":367,"line_start":367,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":17,"text":" let n = tcp.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:377:34\n |\n377 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13705,"byte_start":13681,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":377,"line_start":377,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:383:17\n |\n383 | let n = to_client.read(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13959,"byte_start":13950,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":383,"line_start":383,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:383:17\n |\n383 | let n = to_client.read(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13980,"byte_start":13950,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":383,"line_start":383,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:386:29\n |\n386 | let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14103,"byte_start":14066,"column_end":66,"column_start":29,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":386,"line_start":386,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":66,"highlight_start":29,"text":" let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:389:9\n |\n389 | to_client.write_all(&message).await.expect(\"write\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14226,"byte_start":14191,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":389,"line_start":389,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:405:27\n |\n405 | let (mut io, _) = target_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14738,"byte_start":14713,"column_end":52,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":405,"line_start":405,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":27,"text":" let (mut io, _) = target_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:408:17\n |\n408 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14809,"byte_start":14807,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":408,"line_start":408,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:408:17\n |\n408 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14830,"byte_start":14807,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":408,"line_start":408,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:411:9\n |\n411 | io.write_all(b\"Goodbye!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14937,"byte_start":14906,"column_end":40,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":411,"line_start":411,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":9,"text":" io.write_all(b\"Goodbye!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:422:21\n |\n422 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":15217,"byte_start":15179,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":422,"line_start":422,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:438:17\n |\n438 | let _ = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":15920,"byte_start":15888,"column_end":49,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":438,"line_start":438,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":17,"text":" let _ = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:447:34\n |\n447 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16230,"byte_start":16206,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":447,"line_start":447,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:464:9\n |\n464 | to_client.read_exact(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16751,"byte_start":16742,"column_end":18,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":464,"line_start":464,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":18,"highlight_start":9,"text":" to_client.read_exact(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:464:9\n |\n464 | to_client.read_exact(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16778,"byte_start":16742,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":464,"line_start":464,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" to_client.read_exact(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:468:9\n |\n468 | / to_client\n469 | | .write_all(response.as_slice())\n470 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16965,"byte_start":16893,"column_end":19,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":470,"line_start":468,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":18,"highlight_start":9,"text":" to_client"},{"highlight_end":44,"highlight_start":1,"text":" .write_all(response.as_slice())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:473:9\n |\n473 | to_client.flush().await.expect(\"flush\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":17028,"byte_start":17005,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":473,"line_start":473,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":32,"highlight_start":9,"text":" to_client.flush().await.expect(\"flush\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"Some errors have detailed explanations: E0282, E0432, E0433.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"Some errors have detailed explanations: E0282, E0432, E0433.","spans":[],"code":null}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"For more information about an error, try `rustc --explain E0282`.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"For more information about an error, try `rustc --explain E0282`.","spans":[],"code":null}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: function `poll_fn` is never used\n --> src/common/future.rs:8:15\n |\n8 | pub(crate) fn poll_fn(f: F) -> PollFn\n | ^^^^^^^\n |\n = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"`#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default","rendered":null,"spans":[]}],"level":"warning","message":"function `poll_fn` is never used","spans":[{"byte_end":160,"byte_start":153,"column_end":22,"column_start":15,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":8,"line_start":8,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":22,"highlight_start":15,"text":"pub(crate) fn poll_fn(f: F) -> PollFn"}]}],"code":{"code":"dead_code","explanation":null}}} +{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: struct `PollFn` is never constructed\n --> src/common/future.rs:15:19\n |\n15 | pub(crate) struct PollFn {\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[],"level":"warning","message":"struct `PollFn` is never constructed","spans":[{"byte_end":281,"byte_start":275,"column_end":25,"column_start":19,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":15,"line_start":15,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":19,"text":"pub(crate) struct PollFn {"}]}],"code":{"code":"dead_code","explanation":null}}} +{"reason":"compiler-artifact","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":true},"features":["default"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhyper_util-554beb56bd5da6e8.rmeta"],"executable":null,"fresh":true} +{"reason":"build-finished","success":false} From 4569561fa109907f0506010eb9df2ebc3d302101 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 10 Jun 2025 15:27:39 -0400 Subject: [PATCH 2/6] feat(pool): add a Cache pooling service --- .github/workflows/CI.yml | 2 +- Cargo.toml | 2 +- src/client/pool/cache.rs | 478 ++++++++++++++++++ src/client/pool/mod.rs | 1 + .../target/rust-analyzer/flycheck0/stderr | 93 ---- .../target/rust-analyzer/flycheck0/stdout | 202 -------- 6 files changed, 481 insertions(+), 297 deletions(-) create mode 100644 src/client/pool/cache.rs delete mode 100644 src/client/pool/target/rust-analyzer/flycheck0/stderr delete mode 100644 src/client/pool/target/rust-analyzer/flycheck0/stdout diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 7a04d8a2..0a25e73f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -126,4 +126,4 @@ jobs: steps: - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@nightly - - run: cargo rustdoc -- --cfg docsrs -D rustdoc::broken_intra_doc_links + - run: cargo rustdoc --featues full -- --cfg docsrs -D rustdoc::broken_intra_doc_links diff --git a/Cargo.toml b/Cargo.toml index bd54ae61..20c92bf4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,7 @@ full = [ client = ["hyper/client", "tokio/net", "dep:tracing", "dep:futures-channel", "dep:tower-service"] client-legacy = ["client", "dep:socket2", "tokio/sync", "dep:libc", "dep:futures-util"] -client-pool = [] +client-pool = ["dep:futures-util"] client-proxy = ["client", "dep:base64", "dep:ipnet", "dep:percent-encoding"] client-proxy-system = ["dep:system-configuration", "dep:windows-registry"] diff --git a/src/client/pool/cache.rs b/src/client/pool/cache.rs new file mode 100644 index 00000000..eaa91e3b --- /dev/null +++ b/src/client/pool/cache.rs @@ -0,0 +1,478 @@ +//! A cache of services +//! +//! The cache is a single list of cached services, bundled with a `MakeService`. +//! Calling the cache returns either an existing service, or makes a new one. +//! The returned `impl Service` can be used to send requests, and when dropped, +//! it will try to be returned back to the cache. + +pub use self::internal::builder; + +#[cfg(docsrs)] +pub use self::internal::Builder; +#[cfg(docsrs)] +pub use self::internal::Cache; +#[cfg(docsrs)] +pub use self::internal::Cached; + +// For now, nothing else in this module is nameable. We can always make things +// more public, but we can't change type shapes (generics) once things are +// public. +mod internal { + use std::fmt; + use std::future::Future; + use std::pin::Pin; + use std::sync::{Arc, Mutex, Weak}; + use std::task::{self, Poll}; + + use futures_core::ready; + use futures_util::future; + use tokio::sync::oneshot; + use tower_service::Service; + + use super::events; + + /// Start a builder to construct a `Cache` pool. + pub fn builder() -> Builder { + Builder { + events: events::Ignore, + } + } + + /// A cache pool of services from the inner make service. + /// + /// Created with [`builder()`]. + /// + /// # Unnameable + /// + /// This type is normally unnameable, forbidding naming of the type within + /// code. The type is exposed in the documentation to show which methods + /// can be publicly called. + #[derive(Debug)] + pub struct Cache + where + M: Service, + { + connector: M, + shared: Arc>>, + events: Ev, + } + + /// A builder to configure a `Cache`. + /// + /// # Unnameable + /// + /// This type is normally unnameable, forbidding naming of the type within + /// code. The type is exposed in the documentation to show which methods + /// can be publicly called. + #[derive(Debug)] + pub struct Builder { + events: Ev, + } + + /// A cached service returned from a [`Cache`]. + /// + /// Implements `Service` by delegating to the inner service. Once dropped, + /// tries to reinsert into the `Cache`. + /// + /// # Unnameable + /// + /// This type is normally unnameable, forbidding naming of the type within + /// code. The type is exposed in the documentation to show which methods + /// can be publicly called. + pub struct Cached { + is_closed: bool, + inner: Option, + shared: Weak>>, + // todo: on_idle + } + + pub enum CacheFuture + where + M: Service, + { + Racing { + shared: Arc>>, + select: future::Select, M::Future>, + events: Ev, + }, + Connecting { + // TODO: could be Weak even here... + shared: Arc>>, + future: M::Future, + }, + Cached { + svc: Option>, + }, + } + + // shouldn't be pub + #[derive(Debug)] + pub struct Shared { + services: Vec, + waiters: Vec>, + } + + // impl Builder + + impl Builder { + /// Provide a `Future` executor to be used by the `Cache`. + /// + /// The executor is used handle some optional background tasks that + /// can improve the behavior of the cache, such as reducing connection + /// thrashing when a race is won. If not configured with an executor, + /// the default behavior is to ignore any of these optional background + /// tasks. + /// + /// The executor should implmenent [`hyper::rt::Executor`]. + /// + /// # Example + /// + /// ```rust + /// # #[cfg(feature = "tokio")] + /// # fn run() { + /// let _builder = hyper_util::client::pool::cache::builder() + /// .executor(hyper_util::rt::TokioExecutor::new()); + /// # } + /// ``` + pub fn executor(self, exec: E) -> Builder> { + Builder { + events: events::WithExecutor(exec), + } + } + + /// Build a `Cache` pool around the `connector`. + pub fn build(self, connector: M) -> Cache + where + M: Service, + { + Cache { + connector, + events: self.events, + shared: Arc::new(Mutex::new(Shared { + services: Vec::new(), + waiters: Vec::new(), + })), + } + } + } + + // impl Cache + + impl Cache + where + M: Service, + { + /// Retain all cached services indicated by the predicate. + pub fn retain(&mut self, predicate: F) + where + F: FnMut(&mut M::Response) -> bool, + { + self.shared.lock().unwrap().services.retain_mut(predicate); + } + } + + impl Service for Cache + where + M: Service, + M::Future: Unpin, + M::Response: Unpin, + Ev: events::Events> + Clone + Unpin, + { + type Response = Cached; + type Error = M::Error; + type Future = CacheFuture; + + fn poll_ready(&mut self, cx: &mut task::Context<'_>) -> Poll> { + if !self.shared.lock().unwrap().services.is_empty() { + Poll::Ready(Ok(())) + } else { + self.connector.poll_ready(cx) + } + } + + fn call(&mut self, target: Dst) -> Self::Future { + // 1. If already cached, easy! + let waiter = { + let mut locked = self.shared.lock().unwrap(); + if let Some(found) = locked.take() { + return CacheFuture::Cached { + svc: Some(Cached::new(found, Arc::downgrade(&self.shared))), + }; + } + + let (tx, rx) = oneshot::channel(); + locked.waiters.push(tx); + rx + }; + + // 2. Otherwise, we start a new connect, and also listen for + // any newly idle. + CacheFuture::Racing { + shared: self.shared.clone(), + select: future::select(waiter, self.connector.call(target)), + events: self.events.clone(), + } + } + } + + impl Clone for Cache + where + M: Service + Clone, + Ev: Clone, + { + fn clone(&self) -> Self { + Self { + connector: self.connector.clone(), + events: self.events.clone(), + shared: self.shared.clone(), + } + } + } + + impl Future for CacheFuture + where + M: Service, + M::Future: Unpin, + M::Response: Unpin, + Ev: events::Events> + Unpin, + { + type Output = Result, M::Error>; + + fn poll(mut self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll { + loop { + match &mut *self.as_mut() { + CacheFuture::Racing { + shared, + select, + events, + } => { + match ready!(Pin::new(select).poll(cx)) { + future::Either::Left((Err(_pool_closed), connecting)) => { + // pool was dropped, so we'll never get it from a waiter, + // but if this future still exists, then the user still + // wants a connection. just wait for the connecting + *self = CacheFuture::Connecting { + shared: shared.clone(), + future: connecting, + }; + } + future::Either::Left((Ok(pool_got), connecting)) => { + events.on_race_lost(BackgroundConnect { + future: connecting, + shared: Arc::downgrade(&shared), + }); + return Poll::Ready(Ok(Cached::new( + pool_got, + Arc::downgrade(&shared), + ))); + } + future::Either::Right((connected, _waiter)) => { + let inner = connected?; + return Poll::Ready(Ok(Cached::new( + inner, + Arc::downgrade(&shared), + ))); + } + } + } + CacheFuture::Connecting { shared, future } => { + let inner = ready!(Pin::new(future).poll(cx))?; + return Poll::Ready(Ok(Cached::new(inner, Arc::downgrade(&shared)))); + } + CacheFuture::Cached { svc } => { + return Poll::Ready(Ok(svc.take().unwrap())); + } + } + } + } + } + + // impl Cached + + impl Cached { + fn new(inner: S, shared: Weak>>) -> Self { + Cached { + is_closed: false, + inner: Some(inner), + shared, + } + } + } + + impl Service for Cached + where + S: Service, + { + type Response = S::Response; + type Error = S::Error; + type Future = S::Future; + + fn poll_ready(&mut self, cx: &mut task::Context<'_>) -> Poll> { + self.inner.as_mut().unwrap().poll_ready(cx).map_err(|err| { + self.is_closed = true; + err + }) + } + + fn call(&mut self, req: Req) -> Self::Future { + self.inner.as_mut().unwrap().call(req) + } + } + + impl Drop for Cached { + fn drop(&mut self) { + if self.is_closed { + return; + } + if let Some(value) = self.inner.take() { + if let Some(shared) = self.shared.upgrade() { + if let Ok(mut shared) = shared.lock() { + shared.put(value); + } + } + } + } + } + + impl fmt::Debug for Cached { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple("Cached") + .field(self.inner.as_ref().unwrap()) + .finish() + } + } + + // impl Shared + + impl Shared { + fn put(&mut self, val: V) { + let mut val = Some(val); + while let Some(tx) = self.waiters.pop() { + if !tx.is_closed() { + match tx.send(val.take().unwrap()) { + Ok(()) => break, + Err(v) => { + val = Some(v); + } + } + } + } + + if let Some(val) = val { + self.services.push(val); + } + } + + fn take(&mut self) -> Option { + // TODO: take in a loop + self.services.pop() + } + } + + pub struct BackgroundConnect { + future: CF, + shared: Weak>>, + } + + impl Future for BackgroundConnect + where + CF: Future> + Unpin, + { + type Output = (); + + fn poll(mut self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll { + match ready!(Pin::new(&mut self.future).poll(cx)) { + Ok(svc) => { + if let Some(shared) = self.shared.upgrade() { + if let Ok(mut locked) = shared.lock() { + locked.put(svc); + } + } + Poll::Ready(()) + } + Err(_e) => Poll::Ready(()), + } + } + } +} + +mod events { + #[derive(Clone, Debug)] + #[non_exhaustive] + pub struct Ignore; + + #[derive(Clone, Debug)] + pub struct WithExecutor(pub(super) E); + + pub trait Events { + fn on_race_lost(&self, fut: CF); + } + + impl Events for Ignore { + fn on_race_lost(&self, _fut: CF) {} + } + + impl Events for WithExecutor + where + E: hyper::rt::Executor, + { + fn on_race_lost(&self, fut: CF) { + self.0.execute(fut); + } + } +} + +#[cfg(test)] +mod tests { + use futures_util::future; + use tower_service::Service; + use tower_test::assert_request_eq; + + #[tokio::test] + async fn test_makes_svc_when_empty() { + let (mock, mut handle) = tower_test::mock::pair(); + let mut cache = super::builder().build(mock); + handle.allow(1); + + crate::common::future::poll_fn(|cx| cache.poll_ready(cx)) + .await + .unwrap(); + + let f = cache.call(1); + + future::join(f, async move { + assert_request_eq!(handle, 1).send_response("one"); + }) + .await + .0 + .expect("call"); + } + + #[tokio::test] + async fn test_reuses_after_idle() { + let (mock, mut handle) = tower_test::mock::pair(); + let mut cache = super::builder().build(mock); + + // only 1 connection should ever be made + handle.allow(1); + + crate::common::future::poll_fn(|cx| cache.poll_ready(cx)) + .await + .unwrap(); + let f = cache.call(1); + let cached = future::join(f, async { + assert_request_eq!(handle, 1).send_response("one"); + }) + .await + .0 + .expect("call"); + drop(cached); + + crate::common::future::poll_fn(|cx| cache.poll_ready(cx)) + .await + .unwrap(); + let f = cache.call(1); + let cached = f.await.expect("call"); + drop(cached); + } +} diff --git a/src/client/pool/mod.rs b/src/client/pool/mod.rs index c0e9bfec..a17acd37 100644 --- a/src/client/pool/mod.rs +++ b/src/client/pool/mod.rs @@ -1,3 +1,4 @@ //! Composable pool services +pub mod cache; pub mod singleton; diff --git a/src/client/pool/target/rust-analyzer/flycheck0/stderr b/src/client/pool/target/rust-analyzer/flycheck0/stderr deleted file mode 100644 index 26d05b8c..00000000 --- a/src/client/pool/target/rust-analyzer/flycheck0/stderr +++ /dev/null @@ -1,93 +0,0 @@ - 0.112845877s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="legacy_client"}: cargo::core::compiler::fingerprint: fingerprint error for hyper-util v0.1.17 (/home/sean/code/hyper-util)/Check { test: true }/TargetInner { kind: "test", name: "legacy_client", benched: false, ..: with_path("/home/sean/code/hyper-util/tests/legacy_client.rs", Edition2021) } - 0.113026998s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="legacy_client"}: cargo::core::compiler::fingerprint: err: failed to read `/home/sean/code/hyper-util/target/debug/.fingerprint/hyper-util-8c5eca22e264ab85/test-integration-test-legacy_client` - -Caused by: - No such file or directory (os error 2) - -Stack backtrace: - 0: cargo_util::paths::read_bytes - 1: cargo_util::paths::read - 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint - 3: cargo::core::compiler::fingerprint::prepare_target - 4: cargo::core::compiler::compile - 5: ::compile - 6: cargo::ops::cargo_compile::compile_ws - 7: cargo::ops::cargo_compile::compile_with_exec - 8: cargo::ops::cargo_compile::compile - 9: cargo::commands::check::exec - 10: ::exec - 11: cargo::main - 12: std::sys::backtrace::__rust_begin_short_backtrace:: - 13: std::rt::lang_start::<()>::{closure#0} - 14: core::ops::function::impls:: for &F>::call_once - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/core/src/ops/function.rs:287:21 - 15: std::panicking::catch_unwind::do_call - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 - 16: std::panicking::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 - 17: std::panic::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 - 18: std::rt::lang_start_internal::{{closure}} - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:175:24 - 19: std::panicking::catch_unwind::do_call - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 - 20: std::panicking::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 - 21: std::panic::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 - 22: std::rt::lang_start_internal - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:171:5 - 23: main - 24: __libc_start_call_main - at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16 - 25: __libc_start_main_impl - at ./csu/../csu/libc-start.c:360:3 - 26: - 0.213487562s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="proxy"}: cargo::core::compiler::fingerprint: fingerprint error for hyper-util v0.1.17 (/home/sean/code/hyper-util)/Check { test: true }/TargetInner { kind: "test", name: "proxy", benched: false, ..: with_path("/home/sean/code/hyper-util/tests/proxy.rs", Edition2021) } - 0.213581563s INFO prepare_target{force=false package_id=hyper-util v0.1.17 (/home/sean/code/hyper-util) target="proxy"}: cargo::core::compiler::fingerprint: err: failed to read `/home/sean/code/hyper-util/target/debug/.fingerprint/hyper-util-c6bd5b6aa0f73e77/test-integration-test-proxy` - -Caused by: - No such file or directory (os error 2) - -Stack backtrace: - 0: cargo_util::paths::read_bytes - 1: cargo_util::paths::read - 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint - 3: cargo::core::compiler::fingerprint::prepare_target - 4: cargo::core::compiler::compile - 5: ::compile - 6: cargo::ops::cargo_compile::compile_ws - 7: cargo::ops::cargo_compile::compile_with_exec - 8: cargo::ops::cargo_compile::compile - 9: cargo::commands::check::exec - 10: ::exec - 11: cargo::main - 12: std::sys::backtrace::__rust_begin_short_backtrace:: - 13: std::rt::lang_start::<()>::{closure#0} - 14: core::ops::function::impls:: for &F>::call_once - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/core/src/ops/function.rs:287:21 - 15: std::panicking::catch_unwind::do_call - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 - 16: std::panicking::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 - 17: std::panic::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 - 18: std::rt::lang_start_internal::{{closure}} - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:175:24 - 19: std::panicking::catch_unwind::do_call - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:590:40 - 20: std::panicking::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panicking.rs:553:19 - 21: std::panic::catch_unwind - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/panic.rs:359:14 - 22: std::rt::lang_start_internal - at /rustc/adaa838976ff99a4f0661136322f64cb466b58a0/library/std/src/rt.rs:171:5 - 23: main - 24: __libc_start_call_main - at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16 - 25: __libc_start_main_impl - at ./csu/../csu/libc-start.c:360:3 - 26: - Checking hyper-util v0.1.17 (/home/sean/code/hyper-util) -error: could not compile `hyper-util` (test "legacy_client") due to 29 previous errors -error: could not compile `hyper-util` (test "proxy") due to 85 previous errors diff --git a/src/client/pool/target/rust-analyzer/flycheck0/stdout b/src/client/pool/target/rust-analyzer/flycheck0/stdout deleted file mode 100644 index f555db6b..00000000 --- a/src/client/pool/target/rust-analyzer/flycheck0/stdout +++ /dev/null @@ -1,202 +0,0 @@ -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.101","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/build/proc-macro2-17e32568540fc90a/build-script-build"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/libc-295f477fb058fbb9/build-script-build"],"executable":null,"fresh":true} -{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","linked_libs":[],"linked_paths":[],"cfgs":["freebsd12"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/libc-fb1350fc81e9f154/out"} -{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.101","linked_libs":[],"linked_paths":[],"cfgs":["wrap_proc_macro","proc_macro_span","proc_macro_span_location","proc_macro_span_file"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/proc-macro2-c3506195f8804da6/out"} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.19","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.19/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_ident","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.19/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libunicode_ident-591df15350997623.rlib","/home/sean/code/hyper-util/target/debug/deps/libunicode_ident-591df15350997623.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.41","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/build/quote-9cf6aa672522b25c/build-script-build"],"executable":null,"fresh":true} -{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.41","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/quote-29c9639cefb85ff6/out"} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.101","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"proc_macro2","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.101/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libproc_macro2-7007d4933373c581.rlib","/home/sean/code/hyper-util/target/debug/deps/libproc_macro2-7007d4933373c581.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libc","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/liblibc-09bc1e25b6956a3f.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.41","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"quote","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.41/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libquote-a91dae4ea458b48f.rlib","/home/sean/code/hyper-util/target/debug/deps/libquote-a91dae4ea458b48f.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@2.0.106","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.106/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.106/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","full","parsing","printing","proc-macro","visit-mut"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libsyn-0931b3da662252d7.rlib","/home/sean/code/hyper-util/target/debug/deps/libsyn-0931b3da662252d7.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.16","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_project_lite","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_project_lite-d39827a1100fb9ef.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bytes@1.10.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bytes","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libbytes-9d3487932bdbd853.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-core@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_core","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_core-928ec4daade86234.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-macros@2.5.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-macros-2.5.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"tokio_macros","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-macros-2.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_macros-6d9feeb873d3b48c.so"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#signal-hook-registry@1.4.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signal-hook-registry-1.4.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"signal_hook_registry","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signal-hook-registry-1.4.6/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libsignal_hook_registry-23bc263d874f94f9.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#mio@1.0.4","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mio-1.0.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"mio","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mio-1.0.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["net","os-ext","os-poll"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libmio-de36dacb5509a274.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio@1.47.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bytes","default","io-util","libc","macros","mio","rt","signal","signal-hook-registry","sync","test-util","time","tokio-macros"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio-90a7f091d7d9e373.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fnv@1.0.7","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fnv","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfnv-77c502cd42f57b8f.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.15","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.15/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"itoa","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.15/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libitoa-a41e1811ddda7bbe.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http@1.3.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttp-1011bad67192e6a8.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"once_cell","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","race","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libonce_cell-a196c0519b93602c.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["result","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/serde_core-c44f039cd676198c/build-script-build"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#memchr@2.7.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.7.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"memchr","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.7.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libmemchr-0f957f453f209228.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#aho-corasick@1.1.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aho-corasick-1.1.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"aho_corasick","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aho-corasick-1.1.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["perf-literal","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libaho_corasick-4456e926ab7cf816.rmeta"],"executable":null,"fresh":true} -{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/serde_core-c95867eba98b952a/out"} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing-core@0.1.34","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.34/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tracing_core","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.34/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["once_cell","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtracing_core-ea0328b9508f171e.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"equivalent","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libequivalent-dbd0be9061b7acbc.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/serde-e58c1d6fb639cf0d/build-script-build"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/build/httparse-05246e2aa92cc113/build-script-build"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-utils@0.1.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_utils","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_utils-7f3687f361877058.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex-syntax@0.8.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-syntax-0.8.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex_syntax","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-syntax-0.8.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libregex_syntax-37398a1b76c1964b.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-sink@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_sink","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_sink-0305eccffc39046b.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.16.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhashbrown-14a51d3705e84ead.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#indexmap@2.11.4","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.11.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"indexmap","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.11.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libindexmap-1dd5229ddbfd6817.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-util@0.7.16","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_util","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.16/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["codec","default","io"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_util-6a888b5c689da964.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex-automata@0.4.11","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.11/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex_automata","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.11/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","dfa-onepass","hybrid","meta","nfa-backtrack","nfa-pikevm","nfa-thompson","perf-inline","perf-literal","perf-literal-multisubstring","perf-literal-substring","std","syntax"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libregex_automata-781ca882576488dd.rmeta"],"executable":null,"fresh":true} -{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","linked_libs":[],"linked_paths":[],"cfgs":["httparse_simd_neon_intrinsics","httparse_simd"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/httparse-4a4751aff91f1e29/out"} -{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","linked_libs":[],"linked_paths":[],"cfgs":["if_docsrs_then_no_serde_core"],"env":[],"out_dir":"/home/sean/code/hyper-util/target/debug/build/serde-e612e86ffa702f9d/out"} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.41","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tracing","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtracing-2e3c89be3ca065d5.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_core","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["result","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libserde_core-595310025e4486d8.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http-body@1.0.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http_body","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-1.0.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttp_body-9ed23291c56a6c25.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async-stream-impl@0.3.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-impl-0.3.6/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"async_stream_impl","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-impl-0.3.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libasync_stream_impl-35dbe5f5891db963.so"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#atomic-waker@1.1.2","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"atomic_waker","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-waker-1.1.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libatomic_waker-20260b4402dc237a.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slab@0.4.11","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.11/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"slab","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.11/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libslab-0f7d78e81fd9c627.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#try-lock@0.2.5","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/try-lock-0.2.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"try_lock","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/try-lock-0.2.5/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtry_lock-014b8dacdcc310d6.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#want@0.3.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/want-0.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"want","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/want-0.3.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libwant-abca090310cbd894.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#h2@0.4.12","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/h2-0.4.12/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"h2","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/h2-0.4.12/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libh2-e627dbaa5fbc640f.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async-stream@0.3.6","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-0.3.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"async_stream","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-stream-0.3.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libasync_stream-cc5fcf397c17217d.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libserde-c950a6e44566446a.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"httparse","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttparse-18c0333df5b5f665.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex@1.11.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-1.11.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-1.11.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["perf","perf-backtrack","perf-cache","perf-dfa","perf-inline","perf-literal","perf-onepass","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libregex-a4f666b115698f05.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-stream@0.1.17","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-stream-0.1.17/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_stream","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-stream-0.1.17/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","time"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_stream-2a24862dec233543.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-channel@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_channel","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_channel-c83de858d5464c85.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project-internal@1.1.10","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-internal-1.1.10/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"pin_project_internal","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-internal-1.1.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_project_internal-902211fe168c8424.so"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#is-terminal@0.4.16","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/is-terminal-0.4.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"is_terminal","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/is-terminal-0.4.16/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libis_terminal-083fdd33080d6c28.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#smallvec@1.15.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"smallvec","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["const_generics","const_new"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libsmallvec-70d5fd5aa87b6bea.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#no-std-net@0.6.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/no-std-net-0.6.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"no_std_net","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/no-std-net-0.6.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libno_std_net-b53e0fabdd488e64.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-task@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_task","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_task-fdb245a69f872492.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#termcolor@1.4.1","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/termcolor-1.4.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"termcolor","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/termcolor-1.4.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtermcolor-636a756f6388b07c.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#humantime@2.3.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-2.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"humantime","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-2.3.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhumantime-bbd29123e033ddcd.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httpdate@1.0.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httpdate-1.0.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"httpdate","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httpdate-1.0.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttpdate-785a8fde9f31b304.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#log@0.4.28","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.28/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"log","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.28/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/liblog-e8b417e6864a09da.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#env_logger@0.10.2","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/env_logger-0.10.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"env_logger","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/env_logger-0.10.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["auto-color","color","default","humantime","regex"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libenv_logger-d720e88bcc0ecf88.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hyper@1.7.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.7.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["client","default","full","http1","http2","server"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhyper-5b1212735e694a60.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-util@0.3.31","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_util","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libfutures_util-22961d7fc5fc1d1b.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pnet_base@0.35.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_base-0.35.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pnet_base","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_base-0.35.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpnet_base-9013f661c0e20c00.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project@1.1.10","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-1.1.10/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_project","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-1.1.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpin_project-86948608a15aabb1.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-test@0.4.4","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-test-0.4.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_test","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-test-0.4.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtokio_test-978d3de8187555a6.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ipnetwork@0.20.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ipnetwork-0.20.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ipnetwork","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ipnetwork-0.20.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","serde"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libipnetwork-912a4b9886749070.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pnet_sys@0.35.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_sys-0.35.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pnet_sys","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_sys-0.35.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpnet_sys-a8ce4ead516b8adc.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-service@0.3.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_service","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-service-0.3.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtower_service-0c244bdadb1c689c.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-layer@0.3.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-layer-0.3.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_layer","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-layer-0.3.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtower_layer-3838c515db690a98.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-test@0.4.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-test-0.4.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_test","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tower-test-0.4.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libtower_test-179ef0e34e66d510.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pnet_datalink@0.35.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_datalink-0.35.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pnet_datalink","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pnet_datalink-0.35.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpnet_datalink-85f3d03178b67455.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pretty_env_logger@0.5.0","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_env_logger-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pretty_env_logger","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pretty_env_logger-0.5.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libpretty_env_logger-e62c76c3b7596a70.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http-body-util@0.1.3","manifest_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http_body_util","src_path":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhttp_body_util-c9e02e90a2a2b34c.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: function `poll_fn` is never used\n --> src/common/future.rs:8:15\n |\n8 | pub(crate) fn poll_fn(f: F) -> PollFn\n | ^^^^^^^\n |\n = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"`#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default","rendered":null,"spans":[]}],"level":"warning","message":"function `poll_fn` is never used","spans":[{"byte_end":160,"byte_start":153,"column_end":22,"column_start":15,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":8,"line_start":8,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":22,"highlight_start":15,"text":"pub(crate) fn poll_fn(f: F) -> PollFn"}]}],"code":{"code":"dead_code","explanation":null}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: struct `PollFn` is never constructed\n --> src/common/future.rs:15:19\n |\n15 | pub(crate) struct PollFn {\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[],"level":"warning","message":"struct `PollFn` is never constructed","spans":[{"byte_end":281,"byte_start":275,"column_end":25,"column_start":19,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":15,"line_start":15,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":19,"text":"pub(crate) struct PollFn {"}]}],"code":{"code":"dead_code","explanation":null}}} -{"reason":"compiler-artifact","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhyper_util-1ea9d177f7e6705a.rmeta"],"executable":null,"fresh":true} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/test_utils/mod.rs:15:17\n |\n15 | use hyper_util::client::legacy::connect::HttpConnector;\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":366,"byte_start":360,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":15,"line_start":15,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::HttpConnector;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/test_utils/mod.rs:16:17\n |\n16 | use hyper_util::client::legacy::connect::{Connected, Connection};\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":422,"byte_start":416,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":16,"line_start":16,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::{Connected, Connection};"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tokio::net::TcpStream`\n --> tests/test_utils/mod.rs:11:5\n |\n11 | use tokio::net::TcpStream;\n | ^^^^^^^^^^^^^^^^^^^^^ no `TcpStream` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:44:26\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n44 | | pub use tcp::stream::TcpStream;\n | | ^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing this struct instead\n |\n11 - use tokio::net::TcpStream;\n11 + use std::net::TcpStream;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":1,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":1,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":1,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" mod udp;"},{"highlight_end":1,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":1,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":1,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1562,"byte_start":1553,"column_end":35,"column_start":26,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":44,"line_start":44,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":26,"text":" pub use tcp::stream::TcpStream;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing this struct instead","rendered":null,"spans":[{"byte_end":310,"byte_start":289,"column_end":26,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":11,"line_start":11,"suggested_replacement":"std::net::TcpStream","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":26,"highlight_start":5,"text":"use tokio::net::TcpStream;"}]}]}],"level":"error","message":"unresolved import `tokio::net::TcpStream`","spans":[{"byte_end":310,"byte_start":289,"column_end":26,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"no `TcpStream` in `net`","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":5,"text":"use tokio::net::TcpStream;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:23:17\n |\n23 | use hyper_util::client::legacy::connect::{capture_connection, HttpConnector};\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":603,"byte_start":597,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":23,"line_start":23,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::{capture_connection, HttpConnector};"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:24:17\n |\n24 | use hyper_util::client::legacy::Client;\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":681,"byte_start":675,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":24,"line_start":24,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::Client;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `hyper_util::rt::TokioIo`\n --> tests/test_utils/mod.rs:17:5\n |\n17 | use hyper_util::rt::TokioIo;\n | ^^^^^^^^^^^^^^^^^^^^^^^ no `TokioIo` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"unresolved import `hyper_util::rt::TokioIo`","spans":[{"byte_end":493,"byte_start":470,"column_end":28,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"no `TokioIo` in `rt`","line_end":17,"line_start":17,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":28,"highlight_start":5,"text":"use hyper_util::rt::TokioIo;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved imports `hyper_util::rt::TokioExecutor`, `hyper_util::rt::TokioIo`\n --> tests/legacy_client.rs:25:22\n |\n25 | use hyper_util::rt::{TokioExecutor, TokioIo};\n | ^^^^^^^^^^^^^ ^^^^^^^ no `TokioIo` in `rt`\n | |\n | no `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]},{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"unresolved imports `hyper_util::rt::TokioExecutor`, `hyper_util::rt::TokioIo`","spans":[{"byte_end":733,"byte_start":720,"column_end":35,"column_start":22,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TokioExecutor` in `rt`","line_end":25,"line_start":25,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":22,"text":"use hyper_util::rt::{TokioExecutor, TokioIo};"}]},{"byte_end":742,"byte_start":735,"column_end":44,"column_start":37,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TokioIo` in `rt`","line_end":25,"line_start":25,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":37,"text":"use hyper_util::rt::{TokioExecutor, TokioIo};"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `futures_channel`\n --> tests/test_utils/mod.rs:5:5\n |\n5 | use futures_channel::mpsc;\n | ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_channel`\n |\nhelp: there is a crate or module with a similar name\n |\n5 - use futures_channel::mpsc;\n5 + use futures_core::mpsc;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"there is a crate or module with a similar name","rendered":null,"spans":[{"byte_end":107,"byte_start":92,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":5,"line_start":5,"suggested_replacement":"futures_core","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::mpsc;"}]}]}],"level":"error","message":"unresolved import `futures_channel`","spans":[{"byte_end":107,"byte_start":92,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `futures_channel`","line_end":5,"line_start":5,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::mpsc;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `futures_channel`\n --> tests/legacy_client.rs:12:5\n |\n12 | use futures_channel::{mpsc, oneshot};\n | ^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `futures_channel`\n |\nhelp: there is a crate or module with a similar name\n |\n12 - use futures_channel::{mpsc, oneshot};\n12 + use futures_core::{mpsc, oneshot};\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"there is a crate or module with a similar name","rendered":null,"spans":[{"byte_end":241,"byte_start":226,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":"futures_core","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::{mpsc, oneshot};"}]}]}],"level":"error","message":"unresolved import `futures_channel`","spans":[{"byte_end":241,"byte_start":226,"column_end":20,"column_start":5,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `futures_channel`","line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":20,"highlight_start":5,"text":"use futures_channel::{mpsc, oneshot};"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tokio::net::TcpListener`\n --> tests/legacy_client.rs:808:9\n |\n808 | use tokio::net::TcpListener;\n | ^^^^^^^^^^^^^^^^^^^^^^^ no `TcpListener` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n 38 | / cfg_net! {\n 39 | | mod lookup_host;\n 40 | | pub use lookup_host::lookup_host;\n... |\n 43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n 52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing one of these structs instead\n |\n808 - use tokio::net::TcpListener;\n808 + use crate::TcpListener;\n |\n808 - use tokio::net::TcpListener;\n808 + use std::net::TcpListener;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs instead","rendered":null,"spans":[{"byte_end":26954,"byte_start":26931,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":808,"line_start":808,"suggested_replacement":"crate::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]},{"byte_end":26954,"byte_start":26931,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":808,"line_start":808,"suggested_replacement":"std::net::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}]}],"level":"error","message":"unresolved import `tokio::net::TcpListener`","spans":[{"byte_end":26954,"byte_start":26931,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TcpListener` in `net`","line_end":808,"line_start":808,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tokio::net::TcpListener`\n --> tests/legacy_client.rs:889:9\n |\n889 | use tokio::net::TcpListener;\n | ^^^^^^^^^^^^^^^^^^^^^^^ no `TcpListener` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n 38 | / cfg_net! {\n 39 | | mod lookup_host;\n 40 | | pub use lookup_host::lookup_host;\n... |\n 43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n 52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing one of these structs instead\n |\n889 - use tokio::net::TcpListener;\n889 + use crate::TcpListener;\n |\n889 - use tokio::net::TcpListener;\n889 + use std::net::TcpListener;\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs instead","rendered":null,"spans":[{"byte_end":29977,"byte_start":29954,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":889,"line_start":889,"suggested_replacement":"crate::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]},{"byte_end":29977,"byte_start":29954,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":889,"line_start":889,"suggested_replacement":"std::net::TcpListener","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}]}],"level":"error","message":"unresolved import `tokio::net::TcpListener`","spans":[{"byte_end":29977,"byte_start":29954,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"no `TcpListener` in `net`","line_end":889,"line_start":889,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":32,"highlight_start":9,"text":" use tokio::net::TcpListener;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:50:50\n |\n50 | let client = Client::builder(hyper_util::rt::TokioExecutor::new()).build(\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":1452,"byte_start":1439,"column_end":63,"column_start":50,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":50,"line_start":50,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":63,"highlight_start":50,"text":" let client = Client::builder(hyper_util::rt::TokioExecutor::new()).build("}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioIo` in `rt`\n --> tests/legacy_client.rs:1107:36\n |\n1107 | inner: hyper_util::rt::TokioIo::new(mock),\n | ^^^^^^^ could not find `TokioIo` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioIo` in `rt`","spans":[{"byte_end":38654,"byte_start":38647,"column_end":43,"column_start":36,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioIo` in `rt`","line_end":1107,"line_start":1107,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":43,"highlight_start":36,"text":" inner: hyper_util::rt::TokioIo::new(mock),"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1220:18\n |\n1220 | impl hyper_util::client::legacy::connect::Connection for MockConnection {\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":43841,"byte_start":43835,"column_end":24,"column_start":18,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1220,"line_start":1220,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":18,"text":"impl hyper_util::client::legacy::connect::Connection for MockConnection {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1223:40\n |\n1223 | fn connected(&self) -> hyper_util::client::legacy::connect::Connected {\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":44060,"byte_start":44054,"column_end":46,"column_start":40,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1223,"line_start":1223,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":46,"highlight_start":40,"text":" fn connected(&self) -> hyper_util::client::legacy::connect::Connected {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1224:21\n |\n1224 | hyper_util::client::legacy::connect::Connected::new()\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":44117,"byte_start":44111,"column_end":27,"column_start":21,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1224,"line_start":1224,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":27,"highlight_start":21,"text":" hyper_util::client::legacy::connect::Connected::new()"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1346:30\n |\n1346 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":49915,"byte_start":49909,"column_end":36,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1346,"line_start":1346,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":30,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:1346:78\n |\n1346 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":49970,"byte_start":49957,"column_end":91,"column_start":78,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":1346,"line_start":1346,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":91,"highlight_start":78,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1398:30\n |\n1398 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":52788,"byte_start":52782,"column_end":36,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1398,"line_start":1398,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":30,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:1398:78\n |\n1398 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":52843,"byte_start":52830,"column_end":91,"column_start":78,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":1398,"line_start":1398,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":91,"highlight_start":78,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/legacy_client.rs:1465:30\n |\n1465 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n 10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":56193,"byte_start":56187,"column_end":36,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":1465,"line_start":1465,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":30,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TokioExecutor` in `rt`\n --> tests/legacy_client.rs:1465:78\n |\n1465 | let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())\n | ^^^^^^^^^^^^^ could not find `TokioExecutor` in `rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:23\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":247,"byte_start":234,"column_end":36,"column_start":23,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":36,"highlight_start":23,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"failed to resolve: could not find `TokioExecutor` in `rt`","spans":[{"byte_end":56248,"byte_start":56235,"column_end":91,"column_start":78,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TokioExecutor` in `rt`","line_end":1465,"line_start":1465,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":91,"highlight_start":78,"text":" let client = hyper_util::client::legacy::Client::builder(hyper_util::rt::TokioExecutor::new())"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/test_utils/mod.rs:58:9\n |\n58 | tower_service::Service::::poll_ready(&mut self.http, cx)\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\nhelp: consider importing this trait\n |\n 1 + use hyper::service::Service;\n |\nhelp: if you import `Service`, refer to it directly\n |\n58 - tower_service::Service::::poll_ready(&mut self.http, cx)\n58 + Service::::poll_ready(&mut self.http, cx)\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]},{"children":[],"code":null,"level":"help","message":"consider importing this trait","rendered":null,"spans":[{"byte_end":0,"byte_start":0,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":1,"line_start":1,"suggested_replacement":"use hyper::service::Service;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::pin::Pin;"}]}]},{"children":[],"code":null,"level":"help","message":"if you import `Service`, refer to it directly","rendered":null,"spans":[{"byte_end":1692,"byte_start":1677,"column_end":24,"column_start":9,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":null,"line_end":58,"line_start":58,"suggested_replacement":"","suggestion_applicability":"Unspecified","text":[{"highlight_end":24,"highlight_start":9,"text":" tower_service::Service::::poll_ready(&mut self.http, cx)"}]}]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":1690,"byte_start":1677,"column_end":22,"column_start":9,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":58,"line_start":58,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":22,"highlight_start":9,"text":" tower_service::Service::::poll_ready(&mut self.http, cx)"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `TcpListener` in `net`\n --> tests/legacy_client.rs:93:30\n |\n93 | let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();\n | ^^^^^^^^^^^ could not find `TcpListener` in `net`\n |\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\nhelp: consider importing one of these structs\n |\n 3 + use crate::TcpListener;\n |\n 3 + use std::net::TcpListener;\n |\nhelp: if you import `TcpListener`, refer to it directly\n |\n93 - let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();\n93 + let server = TcpListener::bind(\"127.0.0.1:0\").await.unwrap();\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs","rendered":null,"spans":[{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use crate::TcpListener;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use std::net::TcpListener;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]}]},{"children":[],"code":null,"level":"help","message":"if you import `TcpListener`, refer to it directly","rendered":null,"spans":[{"byte_end":2841,"byte_start":2829,"column_end":30,"column_start":18,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":93,"line_start":93,"suggested_replacement":"","suggestion_applicability":"Unspecified","text":[{"highlight_end":30,"highlight_start":18,"text":" let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();"}]}]}],"level":"error","message":"failed to resolve: could not find `TcpListener` in `net`","spans":[{"byte_end":2852,"byte_start":2841,"column_end":41,"column_start":30,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `TcpListener` in `net`","line_end":93,"line_start":93,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":30,"text":" let server = tokio::net::TcpListener::bind(\"127.0.0.1:0\").await.unwrap();"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `server` in `hyper_util`\n --> tests/legacy_client.rs:824:39\n |\n824 | let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());\n | ^^^^^^ could not find `server` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:14:9\n |\n 13 | #[cfg(feature = \"server\")]\n | ------------------ the item is gated behind the `server` feature\n 14 | pub mod server;\n | ^^^^^^\nhelp: consider importing one of these structs\n |\n 3 + use crate::thread::Builder;\n |\n 3 + use std::thread::Builder;\n |\n 3 + use http::request::Builder;\n |\n 3 + use http::response::Builder;\n |\n = and 7 other candidates\nhelp: if you import `Builder`, refer to it directly\n |\n824 - let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());\n824 + let mut builder = Builder::new(TokioExecutor::new());\n |\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":344,"byte_start":326,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `server` feature","line_end":13,"line_start":13,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"server\")]"}]},{"byte_end":361,"byte_start":355,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":14,"line_start":14,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod server;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing one of these structs","rendered":null,"spans":[{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use crate::thread::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use std::thread::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use http::request::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use http::response::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use http::uri::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::client::conn::http1::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::client::conn::http2::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::server::conn::http1::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use hyper::server::conn::http2::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use tokio::runtime::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]},{"byte_end":17,"byte_start":17,"column_end":1,"column_start":1,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":3,"line_start":3,"suggested_replacement":"use tokio_test::io::Builder;\n","suggestion_applicability":"MaybeIncorrect","text":[{"highlight_end":1,"highlight_start":1,"text":"use std::io::{Read, Write};"}]}]},{"children":[],"code":null,"level":"help","message":"if you import `Builder`, refer to it directly","rendered":null,"spans":[{"byte_end":27529,"byte_start":27497,"column_end":59,"column_start":27,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":null,"line_end":824,"line_start":824,"suggested_replacement":"","suggestion_applicability":"Unspecified","text":[{"highlight_end":59,"highlight_start":27,"text":" let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());"}]}]}],"level":"error","message":"failed to resolve: could not find `server` in `hyper_util`","spans":[{"byte_end":27515,"byte_start":27509,"column_end":45,"column_start":39,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"could not find `server` in `hyper_util`","line_end":824,"line_start":824,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":39,"text":" let mut builder = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new());"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0412]: cannot find type `TokioIo` in module `hyper_util::rt`\n --> tests/legacy_client.rs:1086:28\n |\n1086 | inner: hyper_util::rt::TokioIo,\n | ^^^^^^^ not found in `hyper_util::rt`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/rt/mod.rs:12:38\n |\n 11 | #[cfg(feature = \"tokio\")]\n | ----------------- the item is gated behind the `tokio` feature\n 12 | pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};\n | ^^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":209,"byte_start":192,"column_end":24,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":false,"label":"the item is gated behind the `tokio` feature","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":24,"highlight_start":7,"text":"#[cfg(feature = \"tokio\")]"}]},{"byte_end":256,"byte_start":249,"column_end":45,"column_start":38,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/rt/mod.rs","is_primary":true,"label":null,"line_end":12,"line_start":12,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":38,"text":"pub use self::tokio::{TokioExecutor, TokioIo, TokioTimer};"}]}]}],"level":"error","message":"cannot find type `TokioIo` in module `hyper_util::rt`","spans":[{"byte_end":37688,"byte_start":37681,"column_end":35,"column_start":28,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"not found in `hyper_util::rt`","line_end":1086,"line_start":1086,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":28,"text":" inner: hyper_util::rt::TokioIo,"}]}],"code":{"code":"E0412","explanation":"A used type name is not in scope.\n\nErroneous code examples:\n\n```compile_fail,E0412\nimpl Something {} // error: type name `Something` is not in scope\n\n// or:\n\ntrait Foo {\n fn bar(N); // error: type name `N` is not in scope\n}\n\n// or:\n\nfn foo(x: T) {} // type name `T` is not in scope\n```\n\nTo fix this error, please verify you didn't misspell the type name, you did\ndeclare it or imported it into the scope. Examples:\n\n```\nstruct Something;\n\nimpl Something {} // ok!\n\n// or:\n\ntrait Foo {\n type N;\n\n fn bar(_: Self::N); // ok!\n}\n\n// or:\n\nfn foo(x: T) {} // ok!\n```\n\nAnother case that causes this error is when a type is imported into a parent\nmodule. To fix this, you can follow the suggestion and use File directly or\n`use super::File;` which will import the types from the parent namespace. An\nexample that causes this error is below:\n\n```compile_fail,E0412\nuse std::fs::File;\n\nmod foo {\n fn some_function(f: File) {}\n}\n```\n\n```\nuse std::fs::File;\n\nmod foo {\n // either\n use super::File;\n // or\n // use std::fs::File;\n fn foo(f: File) {}\n}\n# fn main() {} // don't insert it for us; that'll break imports\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/test_utils/mod.rs:51:6\n |\n51 | impl tower_service::Service for DebugConnector {\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":1289,"byte_start":1276,"column_end":19,"column_start":6,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":51,"line_start":51,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":6,"text":"impl tower_service::Service for DebugConnector {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/test_utils/mod.rs:53:36\n |\n53 | type Error = >::Error;\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":1406,"byte_start":1393,"column_end":49,"column_start":36,"expansion":null,"file_name":"tests/test_utils/mod.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":53,"line_start":53,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":36,"text":" type Error = >::Error;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: use of unresolved module or unlinked crate `tower_service`\n --> tests/legacy_client.rs:1253:6\n |\n1253 | impl tower_service::Service for MockConnector {\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"failed to resolve: use of unresolved module or unlinked crate `tower_service`","spans":[{"byte_end":45122,"byte_start":45109,"column_end":19,"column_start":6,"expansion":null,"file_name":"tests/legacy_client.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":1253,"line_start":1253,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":6,"text":"impl tower_service::Service for MockConnector {"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"Some errors have detailed explanations: E0412, E0432, E0433.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"Some errors have detailed explanations: E0412, E0432, E0433.","spans":[],"code":null}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"legacy_client","src_path":"/home/sean/code/hyper-util/tests/legacy_client.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"For more information about an error, try `rustc --explain E0412`.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"For more information about an error, try `rustc --explain E0412`.","spans":[],"code":null}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/proxy.rs:5:17\n |\n 5 | use hyper_util::client::legacy::connect::proxy::{SocksV4, SocksV5, Tunnel};\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":139,"byte_start":133,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":5,"line_start":5,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::proxy::{SocksV4, SocksV5, Tunnel};"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0433]: failed to resolve: could not find `client` in `hyper_util`\n --> tests/proxy.rs:6:17\n |\n 6 | use hyper_util::client::legacy::connect::HttpConnector;\n | ^^^^^^ could not find `client` in `hyper_util`\n |\nnote: found an item that was configured out\n --> /home/sean/code/hyper-util/src/lib.rs:10:9\n |\n 9 | #[cfg(feature = \"client\")]\n | ------------------ the item is gated behind the `client` feature\n10 | pub mod client;\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":277,"byte_start":259,"column_end":25,"column_start":7,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":false,"label":"the item is gated behind the `client` feature","line_end":9,"line_start":9,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":7,"text":"#[cfg(feature = \"client\")]"}]},{"byte_end":294,"byte_start":288,"column_end":15,"column_start":9,"expansion":null,"file_name":"/home/sean/code/hyper-util/src/lib.rs","is_primary":true,"label":null,"line_end":10,"line_start":10,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":15,"highlight_start":9,"text":"pub mod client;"}]}]}],"level":"error","message":"failed to resolve: could not find `client` in `hyper_util`","spans":[{"byte_end":215,"byte_start":209,"column_end":23,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"could not find `client` in `hyper_util`","line_end":6,"line_start":6,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":23,"highlight_start":17,"text":"use hyper_util::client::legacy::connect::HttpConnector;"}]}],"code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved imports `tokio::net::TcpListener`, `tokio::net::TcpStream`\n --> tests/proxy.rs:2:18\n |\n 2 | use tokio::net::{TcpListener, TcpStream};\n | ^^^^^^^^^^^ ^^^^^^^^^ no `TcpStream` in `net`\n | |\n | no `TcpListener` in `net`\n |\n = help: consider importing this struct instead:\n std::net::TcpListener\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:43:28\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n43 | | pub use tcp::listener::TcpListener;\n | | ^^^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\n = help: consider importing this struct instead:\n std::net::TcpStream\nnote: found an item that was configured out\n --> /home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs:44:26\n |\n38 | / cfg_net! {\n39 | | mod lookup_host;\n40 | | pub use lookup_host::lookup_host;\n... |\n44 | | pub use tcp::stream::TcpStream;\n | | ^^^^^^^^^\n... |\n52 | | }\n | |_- the item is gated behind the `net` feature\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"consider importing this struct instead:\nstd::net::TcpListener","rendered":null,"spans":[]},{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":1,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":1,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":1,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":1,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":1,"highlight_start":1,"text":" mod udp;"},{"highlight_end":1,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":1,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":1,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1526,"byte_start":1515,"column_end":39,"column_start":28,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":39,"highlight_start":28,"text":" pub use tcp::listener::TcpListener;"}]}]},{"children":[],"code":null,"level":"help","message":"consider importing this struct instead:\nstd::net::TcpStream","rendered":null,"spans":[]},{"children":[],"code":null,"level":"note","message":"found an item that was configured out","rendered":null,"spans":[{"byte_end":7253,"byte_start":7238,"column_end":34,"column_start":19,"expansion":{"def_site_span":{"byte_end":7180,"byte_start":7160,"column_end":21,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":null,"line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":21,"highlight_start":1,"text":"macro_rules! cfg_net {"}]},"macro_decl_name":"cfg_net!","span":{"byte_end":1704,"byte_start":1400,"column_end":2,"column_start":1,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":false,"label":null,"line_end":52,"line_start":38,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":11,"highlight_start":1,"text":"cfg_net! {"},{"highlight_end":21,"highlight_start":1,"text":" mod lookup_host;"},{"highlight_end":38,"highlight_start":1,"text":" pub use lookup_host::lookup_host;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" pub mod tcp;"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::listener::TcpListener;"},{"highlight_end":36,"highlight_start":1,"text":" pub use tcp::stream::TcpStream;"},{"highlight_end":20,"highlight_start":1,"text":" cfg_not_wasi! {"},{"highlight_end":40,"highlight_start":1,"text":" pub use tcp::socket::TcpSocket;"},{"highlight_end":1,"highlight_start":1,"text":""},{"highlight_end":17,"highlight_start":1,"text":" mod udp;"},{"highlight_end":23,"highlight_start":1,"text":" #[doc(inline)]"},{"highlight_end":32,"highlight_start":1,"text":" pub use udp::UdpSocket;"},{"highlight_end":6,"highlight_start":1,"text":" }"},{"highlight_end":2,"highlight_start":1,"text":"}"}]}},"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/macros/cfg.rs","is_primary":false,"label":"the item is gated behind the `net` feature","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":34,"highlight_start":19,"text":" #[cfg(feature = \"net\")]"}]},{"byte_end":1562,"byte_start":1553,"column_end":35,"column_start":26,"expansion":null,"file_name":"/home/sean/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.47.1/src/net/mod.rs","is_primary":true,"label":null,"line_end":44,"line_start":44,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":35,"highlight_start":26,"text":" pub use tcp::stream::TcpStream;"}]}]}],"level":"error","message":"unresolved imports `tokio::net::TcpListener`, `tokio::net::TcpStream`","spans":[{"byte_end":74,"byte_start":63,"column_end":29,"column_start":18,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"no `TcpListener` in `net`","line_end":2,"line_start":2,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":29,"highlight_start":18,"text":"use tokio::net::{TcpListener, TcpStream};"}]},{"byte_end":85,"byte_start":76,"column_end":40,"column_start":31,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"no `TcpStream` in `net`","line_end":2,"line_start":2,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":31,"text":"use tokio::net::{TcpListener, TcpStream};"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0432]: unresolved import `tower_service`\n --> tests/proxy.rs:3:5\n |\n3 | use tower_service::Service;\n | ^^^^^^^^^^^^^ use of unresolved module or unlinked crate `tower_service`\n |\n = help: if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"help","message":"if you wanted to use a crate named `tower_service`, use `cargo add tower_service` to add it to your `Cargo.toml`","rendered":null,"spans":[]}],"level":"error","message":"unresolved import `tower_service`","spans":[{"byte_end":105,"byte_start":92,"column_end":18,"column_start":5,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"use of unresolved module or unlinked crate `tower_service`","line_end":3,"line_start":3,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":18,"highlight_start":5,"text":"use tower_service::Service;"}]}],"code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:11:15\n |\n11 | let tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":366,"byte_start":328,"column_end":53,"column_start":15,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":11,"line_start":11,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":53,"highlight_start":15,"text":" let tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:17:21\n |\n17 | let _conn = connector\n | _____________________^\n18 | | .call(\"https://hyper.rs\".parse().unwrap())\n19 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":718,"byte_start":635,"column_end":19,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":19,"line_start":17,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":30,"highlight_start":21,"text":" let _conn = connector"},{"highlight_end":55,"highlight_start":1,"text":" .call(\"https://hyper.rs\".parse().unwrap())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:24:27\n |\n24 | let (mut io, _) = tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":842,"byte_start":824,"column_end":45,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":24,"line_start":24,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":27,"text":" let (mut io, _) = tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:26:17\n |\n26 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":912,"byte_start":910,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":26,"line_start":26,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:26:17\n |\n26 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":933,"byte_start":910,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":26,"line_start":26,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:31:9\n |\n31 | / io.write_all(b\"HTTP/1.1 200 OK\\r\\n\\r\\n\")\n32 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":1148,"byte_start":1089,"column_end":19,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":32,"line_start":31,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" io.write_all(b\"HTTP/1.1 200 OK\\r\\n\\r\\n\")"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:43:21\n |\n43 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":1392,"byte_start":1354,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":43,"line_start":43,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:47:22\n |\n47 | let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":1609,"byte_start":1571,"column_end":60,"column_start":22,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":47,"line_start":47,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":60,"highlight_start":22,"text":" let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:58:20\n |\n58 | let conn = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2082,"byte_start":2050,"column_end":52,"column_start":20,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":58,"line_start":58,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":20,"text":" let conn = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:61:9\n |\n61 | tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2187,"byte_start":2151,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":61,"line_start":61,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:64:17\n |\n64 | let n = tcp.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2281,"byte_start":2257,"column_end":41,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":64,"line_start":64,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":17,"text":" let n = tcp.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:74:34\n |\n74 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2635,"byte_start":2611,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":74,"line_start":74,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:78:17\n |\n78 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2745,"byte_start":2736,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":78,"line_start":78,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:78:17\n |\n78 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2766,"byte_start":2736,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":78,"line_start":78,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:81:9\n |\n81 | to_client.write_all(&[0x05, 0x00]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":2885,"byte_start":2845,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":81,"line_start":81,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x00]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:87:17\n |\n87 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3172,"byte_start":3142,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":87,"line_start":87,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:90:29\n |\n90 | let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3297,"byte_start":3260,"column_end":66,"column_start":29,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":90,"line_start":90,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":66,"highlight_start":29,"text":" let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:93:9\n |\n93 | to_client.write_all(&message).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3437,"byte_start":3402,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":93,"line_start":93,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:109:27\n |\n109 | let (mut io, _) = target_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":3951,"byte_start":3926,"column_end":52,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":109,"line_start":109,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":27,"text":" let (mut io, _) = target_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:112:17\n |\n112 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4022,"byte_start":4020,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":112,"line_start":112,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:112:17\n |\n112 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4043,"byte_start":4020,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":112,"line_start":112,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:115:9\n |\n115 | io.write_all(b\"Goodbye!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4150,"byte_start":4119,"column_end":40,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":115,"line_start":115,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":9,"text":" io.write_all(b\"Goodbye!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:126:21\n |\n126 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4429,"byte_start":4391,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":126,"line_start":126,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:130:22\n |\n130 | let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":4646,"byte_start":4608,"column_end":60,"column_start":22,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":130,"line_start":130,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":60,"highlight_start":22,"text":" let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:142:20\n |\n142 | let conn = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5167,"byte_start":5135,"column_end":52,"column_start":20,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":142,"line_start":142,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":20,"text":" let conn = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:145:9\n |\n145 | tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5272,"byte_start":5236,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":145,"line_start":145,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:148:17\n |\n148 | let n = tcp.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5366,"byte_start":5342,"column_end":41,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":148,"line_start":148,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":17,"text":" let n = tcp.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:158:34\n |\n158 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5720,"byte_start":5696,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":158,"line_start":158,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:162:17\n |\n162 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5830,"byte_start":5821,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":162,"line_start":162,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:162:17\n |\n162 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5851,"byte_start":5821,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":162,"line_start":162,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:165:9\n |\n165 | to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":5970,"byte_start":5930,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":165,"line_start":165,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:168:17\n |\n168 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6061,"byte_start":6031,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":168,"line_start":168,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:174:9\n |\n174 | to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6331,"byte_start":6291,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":174,"line_start":174,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:177:17\n |\n177 | let n = to_client.read(&mut buf).await.expect(\"read 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6425,"byte_start":6395,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":177,"line_start":177,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:183:29\n |\n183 | let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6744,"byte_start":6707,"column_end":66,"column_start":29,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":183,"line_start":183,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":66,"highlight_start":29,"text":" let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:186:9\n |\n186 | to_client.write_all(&message).await.expect(\"write 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":6884,"byte_start":6849,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":186,"line_start":186,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:202:27\n |\n202 | let (mut io, _) = target_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7398,"byte_start":7373,"column_end":52,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":202,"line_start":202,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":27,"text":" let (mut io, _) = target_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:205:17\n |\n205 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7469,"byte_start":7467,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":205,"line_start":205,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:205:17\n |\n205 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7490,"byte_start":7467,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":205,"line_start":205,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:208:9\n |\n208 | io.write_all(b\"Goodbye!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7597,"byte_start":7566,"column_end":40,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":208,"line_start":208,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":9,"text":" io.write_all(b\"Goodbye!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:219:21\n |\n219 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":7894,"byte_start":7856,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":219,"line_start":219,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:232:21\n |\n232 | let _conn = connector\n | _____________________^\n233 | | .call(\"https://hyper.rs:443\".try_into().unwrap())\n234 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8499,"byte_start":8409,"column_end":19,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":234,"line_start":232,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":30,"highlight_start":21,"text":" let _conn = connector"},{"highlight_end":62,"highlight_start":1,"text":" .call(\"https://hyper.rs:443\".try_into().unwrap())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:244:34\n |\n244 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8822,"byte_start":8798,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":244,"line_start":244,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:248:17\n |\n248 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8932,"byte_start":8923,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":248,"line_start":248,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:248:17\n |\n248 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":8953,"byte_start":8923,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":248,"line_start":248,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:251:9\n |\n251 | to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9072,"byte_start":9032,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":251,"line_start":251,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:254:17\n |\n254 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9163,"byte_start":9133,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":254,"line_start":254,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:260:9\n |\n260 | to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9433,"byte_start":9393,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":260,"line_start":260,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:263:17\n |\n263 | let n = to_client.read(&mut buf).await.expect(\"read 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":9527,"byte_start":9497,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":263,"line_start":263,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:275:9\n |\n275 | to_client.write_all(&message).await.expect(\"write 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":10003,"byte_start":9968,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":275,"line_start":275,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:285:21\n |\n285 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":10263,"byte_start":10225,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":285,"line_start":285,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:298:21\n |\n298 | let _conn = connector\n | _____________________^\n299 | | .call(\"https://hyper.rs:443\".try_into().unwrap())\n300 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":10867,"byte_start":10777,"column_end":19,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":300,"line_start":298,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":30,"highlight_start":21,"text":" let _conn = connector"},{"highlight_end":62,"highlight_start":1,"text":" .call(\"https://hyper.rs:443\".try_into().unwrap())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:310:34\n |\n310 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11190,"byte_start":11166,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":310,"line_start":310,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:314:17\n |\n314 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11300,"byte_start":11291,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":314,"line_start":314,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:314:17\n |\n314 | let n = to_client.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11321,"byte_start":11291,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":314,"line_start":314,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:317:9\n |\n317 | to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11440,"byte_start":11400,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":317,"line_start":317,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x05, 0x02]).await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:320:17\n |\n320 | let n = to_client.read(&mut buf).await.expect(\"read 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11531,"byte_start":11501,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":320,"line_start":320,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:326:9\n |\n326 | to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11801,"byte_start":11761,"column_end":49,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":326,"line_start":326,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":9,"text":" to_client.write_all(&[0x01, 0x00]).await.expect(\"write 2\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:329:17\n |\n329 | let n = to_client.read(&mut buf).await.expect(\"read 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":11895,"byte_start":11865,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":329,"line_start":329,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:336:9\n |\n336 | to_client.write_all(&message).await.expect(\"write 3\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":12231,"byte_start":12196,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":336,"line_start":336,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write 3\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:346:21\n |\n346 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":12462,"byte_start":12424,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":346,"line_start":346,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:350:22\n |\n350 | let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":12679,"byte_start":12641,"column_end":60,"column_start":22,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":350,"line_start":350,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":60,"highlight_start":22,"text":" let target_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:361:20\n |\n361 | let conn = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13152,"byte_start":13120,"column_end":52,"column_start":20,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":361,"line_start":361,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":20,"text":" let conn = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:364:9\n |\n364 | tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13257,"byte_start":13221,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":364,"line_start":364,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" tcp.write_all(b\"Hello World!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:367:17\n |\n367 | let n = tcp.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13351,"byte_start":13327,"column_end":41,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":367,"line_start":367,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":41,"highlight_start":17,"text":" let n = tcp.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:377:34\n |\n377 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13705,"byte_start":13681,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":377,"line_start":377,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:383:17\n |\n383 | let n = to_client.read(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13959,"byte_start":13950,"column_end":26,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":383,"line_start":383,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":26,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:383:17\n |\n383 | let n = to_client.read(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":13980,"byte_start":13950,"column_end":47,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":383,"line_start":383,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":47,"highlight_start":17,"text":" let n = to_client.read(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:386:29\n |\n386 | let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14103,"byte_start":14066,"column_end":66,"column_start":29,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":386,"line_start":386,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":66,"highlight_start":29,"text":" let mut to_target = TcpStream::connect(target_addr).await.expect(\"connect\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:389:9\n |\n389 | to_client.write_all(&message).await.expect(\"write\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14226,"byte_start":14191,"column_end":44,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":389,"line_start":389,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":44,"highlight_start":9,"text":" to_client.write_all(&message).await.expect(\"write\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:405:27\n |\n405 | let (mut io, _) = target_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14738,"byte_start":14713,"column_end":52,"column_start":27,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":405,"line_start":405,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":52,"highlight_start":27,"text":" let (mut io, _) = target_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:408:17\n |\n408 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14809,"byte_start":14807,"column_end":19,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":408,"line_start":408,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":19,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:408:17\n |\n408 | let n = io.read(&mut buf).await.expect(\"read 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14830,"byte_start":14807,"column_end":40,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":408,"line_start":408,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":17,"text":" let n = io.read(&mut buf).await.expect(\"read 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:411:9\n |\n411 | io.write_all(b\"Goodbye!\").await.expect(\"write 1\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":14937,"byte_start":14906,"column_end":40,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":411,"line_start":411,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":40,"highlight_start":9,"text":" io.write_all(b\"Goodbye!\").await.expect(\"write 1\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:422:21\n |\n422 | let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":15217,"byte_start":15179,"column_end":59,"column_start":21,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":422,"line_start":422,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":59,"highlight_start":21,"text":" let proxy_tcp = TcpListener::bind(\"127.0.0.1:0\").await.expect(\"bind\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:438:17\n |\n438 | let _ = connector.call(target_dst).await.expect(\"tunnel\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":15920,"byte_start":15888,"column_end":49,"column_start":17,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":438,"line_start":438,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":49,"highlight_start":17,"text":" let _ = connector.call(target_dst).await.expect(\"tunnel\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:447:34\n |\n447 | let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16230,"byte_start":16206,"column_end":58,"column_start":34,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":447,"line_start":447,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":58,"highlight_start":34,"text":" let (mut to_client, _) = proxy_tcp.accept().await.expect(\"accept\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:464:9\n |\n464 | to_client.read_exact(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16751,"byte_start":16742,"column_end":18,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":464,"line_start":464,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":18,"highlight_start":9,"text":" to_client.read_exact(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:464:9\n |\n464 | to_client.read_exact(&mut buf).await.expect(\"read\");\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16778,"byte_start":16742,"column_end":45,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":464,"line_start":464,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":45,"highlight_start":9,"text":" to_client.read_exact(&mut buf).await.expect(\"read\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:468:9\n |\n468 | / to_client\n469 | | .write_all(response.as_slice())\n470 | | .await\n | |__________________^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":16965,"byte_start":16893,"column_end":19,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":470,"line_start":468,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":18,"highlight_start":9,"text":" to_client"},{"highlight_end":44,"highlight_start":1,"text":" .write_all(response.as_slice())"},{"highlight_end":19,"highlight_start":1,"text":" .await"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"error[E0282]: type annotations needed\n --> tests/proxy.rs:473:9\n |\n473 | to_client.flush().await.expect(\"flush\");\n | ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type\n\n","$message_type":"diagnostic","children":[],"level":"error","message":"type annotations needed","spans":[{"byte_end":17028,"byte_start":17005,"column_end":32,"column_start":9,"expansion":null,"file_name":"tests/proxy.rs","is_primary":true,"label":"cannot infer type","line_end":473,"line_start":473,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":32,"highlight_start":9,"text":" to_client.flush().await.expect(\"flush\");"}]}],"code":{"code":"E0282","explanation":"The compiler could not infer a type and asked for a type annotation.\n\nErroneous code example:\n\n```compile_fail,E0282\nlet x = Vec::new();\n```\n\nThis error indicates that type inference did not result in one unique possible\ntype, and extra information is required. In most cases this can be provided\nby adding a type annotation. Sometimes you need to specify a generic type\nparameter manually.\n\nIn the example above, type `Vec` has a type parameter `T`. When calling\n`Vec::new`, barring any other later usage of the variable `x` that allows the\ncompiler to infer what type `T` is, the compiler needs to be told what it is.\n\nThe type can be specified on the variable:\n\n```\nlet x: Vec = Vec::new();\n```\n\nThe type can also be specified in the path of the expression:\n\n```\nlet x = Vec::::new();\n```\n\nIn cases with more complex types, it is not necessary to annotate the full\ntype. Once the ambiguity is resolved, the compiler can infer the rest:\n\n```\nlet x: Vec<_> = \"hello\".chars().rev().collect();\n```\n\nAnother way to provide the compiler with enough information, is to specify the\ngeneric type parameter:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nAgain, you need not specify the full type if the compiler can infer it:\n\n```\nlet x = \"hello\".chars().rev().collect::>();\n```\n\nApart from a method or function with a generic type parameter, this error can\noccur when a type parameter of a struct or trait cannot be inferred. In that\ncase it is not always possible to use a type annotation, because all candidates\nhave the same return type. For instance:\n\n```compile_fail,E0282\nstruct Foo {\n num: T,\n}\n\nimpl Foo {\n fn bar() -> i32 {\n 0\n }\n\n fn baz() {\n let number = Foo::bar();\n }\n}\n```\n\nThis will fail because the compiler does not know which instance of `Foo` to\ncall `bar` on. Change `Foo::bar()` to `Foo::::bar()` to resolve the error.\n"}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"Some errors have detailed explanations: E0282, E0432, E0433.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"Some errors have detailed explanations: E0282, E0432, E0433.","spans":[],"code":null}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["test"],"crate_types":["bin"],"name":"proxy","src_path":"/home/sean/code/hyper-util/tests/proxy.rs","edition":"2021","doc":false,"doctest":false,"test":true},"message":{"rendered":"For more information about an error, try `rustc --explain E0282`.\n","$message_type":"diagnostic","children":[],"level":"failure-note","message":"For more information about an error, try `rustc --explain E0282`.","spans":[],"code":null}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: function `poll_fn` is never used\n --> src/common/future.rs:8:15\n |\n8 | pub(crate) fn poll_fn(f: F) -> PollFn\n | ^^^^^^^\n |\n = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default\n\n","$message_type":"diagnostic","children":[{"children":[],"code":null,"level":"note","message":"`#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default","rendered":null,"spans":[]}],"level":"warning","message":"function `poll_fn` is never used","spans":[{"byte_end":160,"byte_start":153,"column_end":22,"column_start":15,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":8,"line_start":8,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":22,"highlight_start":15,"text":"pub(crate) fn poll_fn(f: F) -> PollFn"}]}],"code":{"code":"dead_code","explanation":null}}} -{"reason":"compiler-message","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"message":{"rendered":"warning: struct `PollFn` is never constructed\n --> src/common/future.rs:15:19\n |\n15 | pub(crate) struct PollFn {\n | ^^^^^^\n\n","$message_type":"diagnostic","children":[],"level":"warning","message":"struct `PollFn` is never constructed","spans":[{"byte_end":281,"byte_start":275,"column_end":25,"column_start":19,"expansion":null,"file_name":"src/common/future.rs","is_primary":true,"label":null,"line_end":15,"line_start":15,"suggested_replacement":null,"suggestion_applicability":null,"text":[{"highlight_end":25,"highlight_start":19,"text":"pub(crate) struct PollFn {"}]}],"code":{"code":"dead_code","explanation":null}}} -{"reason":"compiler-artifact","package_id":"path+file:///home/sean/code/hyper-util#0.1.17","manifest_path":"/home/sean/code/hyper-util/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"/home/sean/code/hyper-util/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":true},"features":["default"],"filenames":["/home/sean/code/hyper-util/target/debug/deps/libhyper_util-554beb56bd5da6e8.rmeta"],"executable":null,"fresh":true} -{"reason":"build-finished","success":false} From 684486271233995c3e11718c529e4f67baed8b2f Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 10 Jun 2025 15:27:39 -0400 Subject: [PATCH 3/6] feat(pool): add a Negotiate pooling service --- Cargo.toml | 3 +- src/client/pool/mod.rs | 1 + src/client/pool/negotiate.rs | 588 +++++++++++++++++++++++++++++++++++ 3 files changed, 591 insertions(+), 1 deletion(-) create mode 100644 src/client/pool/negotiate.rs diff --git a/Cargo.toml b/Cargo.toml index 20c92bf4..49783a9a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,6 +33,7 @@ pin-project-lite = "0.2.4" socket2 = { version = ">=0.5.9, <0.7", optional = true, features = ["all"] } tracing = { version = "0.1", default-features = false, features = ["std"], optional = true } tokio = { version = "1", optional = true, default-features = false } +tower-layer = { version = "0.3", optional = true } tower-service = { version = "0.3", optional = true } [dev-dependencies] @@ -76,7 +77,7 @@ full = [ client = ["hyper/client", "tokio/net", "dep:tracing", "dep:futures-channel", "dep:tower-service"] client-legacy = ["client", "dep:socket2", "tokio/sync", "dep:libc", "dep:futures-util"] -client-pool = ["dep:futures-util"] +client-pool = ["dep:futures-util", "dep:tower-layer"] client-proxy = ["client", "dep:base64", "dep:ipnet", "dep:percent-encoding"] client-proxy-system = ["dep:system-configuration", "dep:windows-registry"] diff --git a/src/client/pool/mod.rs b/src/client/pool/mod.rs index a17acd37..8b2c3bff 100644 --- a/src/client/pool/mod.rs +++ b/src/client/pool/mod.rs @@ -1,4 +1,5 @@ //! Composable pool services pub mod cache; +pub mod negotiate; pub mod singleton; diff --git a/src/client/pool/negotiate.rs b/src/client/pool/negotiate.rs new file mode 100644 index 00000000..95fe013c --- /dev/null +++ b/src/client/pool/negotiate.rs @@ -0,0 +1,588 @@ +//! Negotiate a pool of services +//! +//! The negotiate pool allows for a service that can decide between two service +//! types based on an intermediate return value. It differs from typical +//! routing since it doesn't depend on the request, but the response. +//! +//! The original use case is support ALPN upgrades to HTTP/2, with a fallback +//! to HTTP/1. +//! +//! # Example +//! +//! ```rust,ignore +//! # async fn run() -> Result<(), Box> { +//! # struct Conn; +//! # impl Conn { fn negotiated_protocol(&self) -> &[u8] { b"h2" } } +//! # let some_tls_connector = tower::service::service_fn(|_| async move { +//! # Ok::<_, std::convert::Infallible>(Conn) +//! # }); +//! # let http1_layer = tower::layer::layer_fn(|s| s); +//! # let http2_layer = tower::layer::layer_fn(|s| s); +//! let mut pool = hyper_util::client::pool::negotiate::builder() +//! .connect(some_tls_connector) +//! .inspect(|c| c.negotiated_protocol() == b"h2") +//! .fallback(http1_layer) +//! .upgrade(http2_layer) +//! .build(); +//! +//! // connect +//! let mut svc = pool.call(http::Uri::from_static("https://hyper.rs")).await?; +//! svc.ready().await; +//! +//! // http1 or http2 is now set up +//! # let some_http_req = http::Request::new(()); +//! let resp = svc.call(some_http_req).await?; +//! # Ok(()) +//! # } +//! ``` + +pub use self::internal::builder; + +#[cfg(docsrs)] +pub use self::internal::Builder; +#[cfg(docsrs)] +pub use self::internal::Negotiate; +#[cfg(docsrs)] +pub use self::internal::Negotiated; + +mod internal { + use std::future::Future; + use std::pin::Pin; + use std::sync::{Arc, Mutex}; + use std::task::{self, Poll}; + + use futures_core::ready; + use pin_project_lite::pin_project; + use tower_layer::Layer; + use tower_service::Service; + + type BoxError = Box; + + /// A negotiating pool over an inner make service. + /// + /// Created with [`builder()`]. + /// + /// # Unnameable + /// + /// This type is normally unnameable, forbidding naming of the type within + /// code. The type is exposed in the documentation to show which methods + /// can be publicly called. + #[derive(Clone)] + pub struct Negotiate { + left: L, + right: R, + } + + /// A negotiated service returned by [`Negotiate`]. + /// + /// # Unnameable + /// + /// This type is normally unnameable, forbidding naming of the type within + /// code. The type is exposed in the documentation to show which methods + /// can be publicly called. + #[derive(Clone, Debug)] + pub enum Negotiated { + #[doc(hidden)] + Fallback(L), + #[doc(hidden)] + Upgraded(R), + } + + pin_project! { + pub struct Negotiating + where + L: Service, + R: Service<()>, + { + #[pin] + state: State, + left: L, + right: R, + } + } + + pin_project! { + #[project = StateProj] + enum State { + Eager { + #[pin] + future: FR, + dst: Option, + }, + Fallback { + #[pin] + future: FL, + }, + Upgrade { + #[pin] + future: FR, + } + } + } + + pin_project! { + #[project = NegotiatedProj] + pub enum NegotiatedFuture { + Fallback { + #[pin] + future: L + }, + Upgraded { + #[pin] + future: R + }, + } + } + + /// A builder to configure a `Negotiate`. + /// + /// # Unnameable + /// + /// This type is normally unnameable, forbidding naming of the type within + /// code. The type is exposed in the documentation to show which methods + /// can be publicly called. + #[derive(Debug)] + pub struct Builder { + connect: C, + inspect: I, + fallback: L, + upgrade: R, + } + + #[derive(Debug)] + pub struct WantsConnect; + #[derive(Debug)] + pub struct WantsInspect; + #[derive(Debug)] + pub struct WantsFallback; + #[derive(Debug)] + pub struct WantsUpgrade; + + /// Start a builder to construct a `Negotiate` pool. + pub fn builder() -> Builder { + Builder { + connect: WantsConnect, + inspect: WantsInspect, + fallback: WantsFallback, + upgrade: WantsUpgrade, + } + } + + impl Builder { + /// Provide the initial connector. + pub fn connect(self, connect: CC) -> Builder { + Builder { + connect, + inspect: self.inspect, + fallback: self.fallback, + upgrade: self.upgrade, + } + } + + /// Provide the inspector that determines the result of the negotiation. + pub fn inspect(self, inspect: II) -> Builder { + Builder { + connect: self.connect, + inspect, + fallback: self.fallback, + upgrade: self.upgrade, + } + } + + /// Provide the layer to fallback to if negotiation fails. + pub fn fallback(self, fallback: LL) -> Builder { + Builder { + connect: self.connect, + inspect: self.inspect, + fallback, + upgrade: self.upgrade, + } + } + + /// Provide the layer to upgrade to if negotiation succeeds. + pub fn upgrade(self, upgrade: RR) -> Builder { + Builder { + connect: self.connect, + inspect: self.inspect, + fallback: self.fallback, + upgrade, + } + } + + /// Build the `Negotiate` pool. + pub fn build(self) -> Negotiate + where + C: Service, + C::Error: Into, + L: Layer>, + L::Service: Service + Clone, + >::Error: Into, + R: Layer>, + R::Service: Service<()> + Clone, + >::Error: Into, + I: Fn(&C::Response) -> bool + Clone, + { + let Builder { + connect, + inspect, + fallback, + upgrade, + } = self; + + let slot = Arc::new(Mutex::new(None)); + let wrapped = Inspector { + svc: connect, + inspect, + slot: slot.clone(), + }; + let left = fallback.layer(wrapped); + + let right = upgrade.layer(Inspected { slot }); + + Negotiate { left, right } + } + } + + impl Service for Negotiate + where + L: Service + Clone, + L::Error: Into, + R: Service<()> + Clone, + R::Error: Into, + { + type Response = Negotiated; + type Error = BoxError; + type Future = Negotiating; + + fn poll_ready(&mut self, cx: &mut task::Context<'_>) -> Poll> { + self.left.poll_ready(cx).map_err(Into::into) + } + + fn call(&mut self, dst: Target) -> Self::Future { + let left = self.left.clone(); + Negotiating { + state: State::Eager { + future: self.right.call(()), + dst: Some(dst), + }, + // place clone, take original that we already polled-ready. + left: std::mem::replace(&mut self.left, left), + right: self.right.clone(), + } + } + } + + impl Future for Negotiating + where + L: Service, + L::Error: Into, + R: Service<()>, + R::Error: Into, + { + type Output = Result, BoxError>; + + fn poll(self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll { + // States: + // - `Eager`: try the "right" path first; on `UseOther` sentinel, fall back to left. + // - `Fallback`: try the left path; on `UseOther` sentinel, upgrade back to right. + // - `Upgrade`: retry the right path after a fallback. + // If all fail, give up. + let mut me = self.project(); + loop { + match me.state.as_mut().project() { + StateProj::Eager { future, dst } => match ready!(future.poll(cx)) { + Ok(out) => return Poll::Ready(Ok(Negotiated::Upgraded(out))), + Err(err) => { + let err = err.into(); + if UseOther::is(&*err) { + let dst = dst.take().unwrap(); + let f = me.left.call(dst); + me.state.set(State::Fallback { future: f }); + continue; + } else { + return Poll::Ready(Err(err)); + } + } + }, + StateProj::Fallback { future } => match ready!(future.poll(cx)) { + Ok(out) => return Poll::Ready(Ok(Negotiated::Fallback(out))), + Err(err) => { + let err = err.into(); + if UseOther::is(&*err) { + let f = me.right.call(()); + me.state.set(State::Upgrade { future: f }); + continue; + } else { + return Poll::Ready(Err(err)); + } + } + }, + StateProj::Upgrade { future } => match ready!(future.poll(cx)) { + Ok(out) => return Poll::Ready(Ok(Negotiated::Upgraded(out))), + Err(err) => return Poll::Ready(Err(err.into())), + }, + } + } + } + } + + #[cfg(test)] + impl Negotiated { + // Could be useful? + pub(super) fn is_fallback(&self) -> bool { + matches!(self, Negotiated::Fallback(_)) + } + + pub(super) fn is_upgraded(&self) -> bool { + matches!(self, Negotiated::Upgraded(_)) + } + } + + impl Service for Negotiated + where + L: Service, + R: Service, + { + type Response = Res; + type Error = E; + type Future = NegotiatedFuture; + + fn poll_ready(&mut self, cx: &mut task::Context<'_>) -> Poll> { + match self { + Negotiated::Fallback(ref mut s) => s.poll_ready(cx), + Negotiated::Upgraded(ref mut s) => s.poll_ready(cx), + } + } + + fn call(&mut self, req: Req) -> Self::Future { + match self { + Negotiated::Fallback(ref mut s) => NegotiatedFuture::Fallback { + future: s.call(req), + }, + Negotiated::Upgraded(ref mut s) => NegotiatedFuture::Upgraded { + future: s.call(req), + }, + } + } + } + + impl Future for NegotiatedFuture + where + L: Future, + R: Future, + { + type Output = Out; + + fn poll(self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll { + match self.project() { + NegotiatedProj::Fallback { future } => future.poll(cx), + NegotiatedProj::Upgraded { future } => future.poll(cx), + } + } + } + + // ===== internal ===== + + pub struct Inspector { + svc: M, + inspect: I, + slot: Arc>>, + } + + pin_project! { + pub struct InspectFuture { + #[pin] + future: F, + inspect: I, + slot: Arc>>, + } + } + + impl Clone for Inspector { + fn clone(&self) -> Self { + Self { + svc: self.svc.clone(), + inspect: self.inspect.clone(), + slot: self.slot.clone(), + } + } + } + + impl Service for Inspector + where + M: Service, + M::Error: Into, + I: Clone + Fn(&S) -> bool, + { + type Response = M::Response; + type Error = BoxError; + type Future = InspectFuture; + + fn poll_ready(&mut self, cx: &mut task::Context<'_>) -> Poll> { + self.svc.poll_ready(cx).map_err(Into::into) + } + + fn call(&mut self, dst: Target) -> Self::Future { + InspectFuture { + future: self.svc.call(dst), + inspect: self.inspect.clone(), + slot: self.slot.clone(), + } + } + } + + impl Future for InspectFuture + where + F: Future>, + E: Into, + I: Fn(&S) -> bool, + { + type Output = Result; + + fn poll(self: Pin<&mut Self>, cx: &mut task::Context<'_>) -> Poll { + let me = self.project(); + let s = ready!(me.future.poll(cx)).map_err(Into::into)?; + Poll::Ready(if (me.inspect)(&s) { + *me.slot.lock().unwrap() = Some(s); + Err(UseOther.into()) + } else { + Ok(s) + }) + } + } + + pub struct Inspected { + slot: Arc>>, + } + + impl Service for Inspected { + type Response = S; + type Error = BoxError; + type Future = std::future::Ready>; + + fn poll_ready(&mut self, _cx: &mut task::Context<'_>) -> Poll> { + if self.slot.lock().unwrap().is_some() { + Poll::Ready(Ok(())) + } else { + Poll::Ready(Err(UseOther.into())) + } + } + + fn call(&mut self, _dst: Target) -> Self::Future { + let s = self + .slot + .lock() + .unwrap() + .take() + .ok_or_else(|| UseOther.into()); + std::future::ready(s) + } + } + + impl Clone for Inspected { + fn clone(&self) -> Inspected { + Inspected { + slot: self.slot.clone(), + } + } + } + + #[derive(Debug)] + struct UseOther; + + impl std::fmt::Display for UseOther { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str("sentinel error; using other") + } + } + + impl std::error::Error for UseOther {} + + impl UseOther { + fn is(err: &(dyn std::error::Error + 'static)) -> bool { + let mut source = Some(err); + while let Some(err) = source { + if err.is::() { + return true; + } + source = err.source(); + } + false + } + } +} + +#[cfg(test)] +mod tests { + use futures_util::future; + use tower_service::Service; + use tower_test::assert_request_eq; + + #[tokio::test] + async fn not_negotiated_falls_back_to_left() { + let (mock_svc, mut handle) = tower_test::mock::pair::<(), &'static str>(); + + let mut negotiate = super::builder() + .connect(mock_svc) + .inspect(|_: &&str| false) + .fallback(layer_fn(|s| s)) + .upgrade(layer_fn(|s| s)) + .build(); + + crate::common::future::poll_fn(|cx| negotiate.poll_ready(cx)) + .await + .unwrap(); + + let fut = negotiate.call(()); + let nsvc = future::join(fut, async move { + assert_request_eq!(handle, ()).send_response("one"); + }) + .await + .0 + .expect("call"); + assert!(nsvc.is_fallback()); + } + + #[tokio::test] + async fn negotiated_uses_right() { + let (mock_svc, mut handle) = tower_test::mock::pair::<(), &'static str>(); + + let mut negotiate = super::builder() + .connect(mock_svc) + .inspect(|_: &&str| true) + .fallback(layer_fn(|s| s)) + .upgrade(layer_fn(|s| s)) + .build(); + + crate::common::future::poll_fn(|cx| negotiate.poll_ready(cx)) + .await + .unwrap(); + + let fut = negotiate.call(()); + let nsvc = future::join(fut, async move { + assert_request_eq!(handle, ()).send_response("one"); + }) + .await + .0 + .expect("call"); + + assert!(nsvc.is_upgraded()); + } + + fn layer_fn(f: F) -> LayerFn { + LayerFn(f) + } + + #[derive(Clone)] + struct LayerFn(F); + + impl tower_layer::Layer for LayerFn + where + F: Fn(S) -> Out, + { + type Service = Out; + fn layer(&self, inner: S) -> Self::Service { + (self.0)(inner) + } + } +} From 7dceb9c9611c0c7ff13321533afe533dd893f782 Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 10 Jun 2025 15:27:39 -0400 Subject: [PATCH 4/6] feat(pool): add a Map pool service type --- src/client/pool/map.rs | 226 +++++++++++++++++++++++++++++++++++++++++ src/client/pool/mod.rs | 1 + 2 files changed, 227 insertions(+) create mode 100644 src/client/pool/map.rs diff --git a/src/client/pool/map.rs b/src/client/pool/map.rs new file mode 100644 index 00000000..23092b6a --- /dev/null +++ b/src/client/pool/map.rs @@ -0,0 +1,226 @@ +//! Map pool utilities +//! +//! The map isn't a typical `Service`, but rather stand-alone type that can map +//! requests to a key and service factory. This is because the service is more +//! of a router, and cannot determine which inner service to check for +//! backpressure since it's not know until the request is made. +//! +//! The map implementation allows customization of extracting a key, and how to +//! construct a MakeService for that key. +//! +//! # Example +//! +//! ```rust,ignore +//! # async fn run() { +//! # use hyper_util::client::pool; +//! # let req = http::Request::new(()); +//! # let some_http1_connector = || { +//! # tower::service::service_fn(|_req| async { Ok::<_, &'static str>(()) }) +//! # }; +//! let mut map = pool::map::Map::builder() +//! .keys(|uri| (uri.scheme().clone(), uri.authority().clone())) +//! .values(|_| { +//! some_http1_connector() +//! }) +//! .build(); +//! +//! let resp = map.service(req.uri()).call(req).await; +//! # } +//! ``` + +use std::collections::HashMap; + +// expose the documentation +#[cfg(docsrs)] +pub use self::builder::Builder; + +/// A map caching `MakeService`s per key. +/// +/// Create one with the [`Map::builder()`]. +pub struct Map +where + T: target::Target, +{ + map: HashMap, + targeter: T, +} + +// impl Map + +impl Map { + /// Create a [`Builder`] to configure a new `Map`. + pub fn builder() -> builder::Builder + { + builder::Builder::new() + } +} + +impl Map +where + T: target::Target, +{ + fn new(targeter: T) -> Self { + Map { + map: HashMap::new(), + targeter, + } + } +} + +impl Map +where + T: target::Target, + T::Key: Eq + std::hash::Hash, +{ + /// Get a service after extracting the key from `req`. + pub fn service(&mut self, req: &Req) -> &mut T::Service { + let key = self.targeter.key(req); + self.map + .entry(key) + .or_insert_with(|| self.targeter.service(req)) + } + + /// Retains only the services specified by the predicate. + pub fn retain(&mut self, predicate: F) + where + F: FnMut(&T::Key, &mut T::Service) -> bool, + { + self.map.retain(predicate); + } + + /// Clears the map, removing all key-value pairs. + pub fn clear(&mut self) { + self.map.clear(); + } +} + +// sealed and unnameable for now +mod target { + pub trait Target { + type Key; + type Service; + + fn key(&self, dst: &Dst) -> Self::Key; + fn service(&self, dst: &Dst) -> Self::Service; + } +} + +// sealed and unnameable for now +mod builder { + use std::marker::PhantomData; + + /// A builder to configure a `Map`. + /// + /// # Unnameable + /// + /// This type is normally unnameable, forbidding naming of the type within + /// code. The type is exposed in the documentation to show which methods + /// can be publicly called. + pub struct Builder { + _dst: PhantomData, + keys: K, + svcs: S, + } + + pub struct WantsKeyer; + pub struct WantsServiceMaker; + + pub enum StartHere {} + + pub struct Built { + keys: K, + svcs: S, + } + + impl Builder { + pub(super) fn new() -> Self { + Builder { + _dst: PhantomData, + keys: WantsKeyer, + svcs: WantsServiceMaker, + } + } + } + + impl Builder { + /// Provide a closure that extracts a pool key for the destination. + pub fn keys(self, keyer: K) -> Builder + where + K: Fn(&Dst) -> KK, + { + Builder { + _dst: PhantomData, + keys: keyer, + svcs: self.svcs, + } + } + } + + impl Builder { + /// Provide a closure to create a new `MakeService` for the destination. + pub fn values(self, svcs: S) -> Builder + where + S: Fn(&Dst) -> SS, + { + Builder { + _dst: PhantomData, + keys: self.keys, + svcs, + } + } + } + + impl Builder + where + Built: super::target::Target, + as super::target::Target>::Key: Eq + std::hash::Hash, + { + /// Build the `Map` pool. + pub fn build(self) -> super::Map, Dst> { + super::Map::new(Built { + keys: self.keys, + svcs: self.svcs, + }) + } + } + + impl super::target::Target for StartHere { + type Key = StartHere; + type Service = StartHere; + + fn key(&self, _: &StartHere) -> Self::Key { + match *self {} + } + + fn service(&self, _: &StartHere) -> Self::Service { + match *self {} + } + } + + impl super::target::Target for Built + where + K: Fn(&Dst) -> KK, + S: Fn(&Dst) -> SS, + KK: Eq + std::hash::Hash, + { + type Key = KK; + type Service = SS; + + fn key(&self, dst: &Dst) -> Self::Key { + (self.keys)(dst) + } + + fn service(&self, dst: &Dst) -> Self::Service { + (self.svcs)(dst) + } + } +} + +#[cfg(test)] +mod tests { + #[test] + fn smoke() { + let mut pool = super::Map::builder().keys(|_| "a").values(|_| "b").build(); + pool.service(&"hello"); + } +} diff --git a/src/client/pool/mod.rs b/src/client/pool/mod.rs index 8b2c3bff..9f1a8fce 100644 --- a/src/client/pool/mod.rs +++ b/src/client/pool/mod.rs @@ -1,5 +1,6 @@ //! Composable pool services pub mod cache; +pub mod map; pub mod negotiate; pub mod singleton; From c632a7d035f958fb686d5f2b83eae7ae89290bfa Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 10 Jun 2025 15:27:39 -0400 Subject: [PATCH 5/6] wip: pool-expire --- src/client/pool/expire.rs | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/client/pool/expire.rs diff --git a/src/client/pool/expire.rs b/src/client/pool/expire.rs new file mode 100644 index 00000000..281c7253 --- /dev/null +++ b/src/client/pool/expire.rs @@ -0,0 +1,3 @@ +pub struct Expire { + +} From 20769abb5606def2aad645768672bc5b6480b50a Mon Sep 17 00:00:00 2001 From: Sean McArthur Date: Tue, 10 Jun 2025 15:27:39 -0400 Subject: [PATCH 6/6] pools wip --- Cargo.toml | 7 +- examples/client.rs | 172 ++++++++++++++++++++++++++++++++------ examples/client_legacy.rs | 37 ++++++++ src/client/pool/expire.rs | 3 + src/client/pool/mod.rs | 1 + src/lib.rs | 6 +- 6 files changed, 198 insertions(+), 28 deletions(-) create mode 100644 examples/client_legacy.rs diff --git a/Cargo.toml b/Cargo.toml index 49783a9a..08847a9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,6 +43,7 @@ futures-util = { version = "0.3.16", default-features = false, features = ["allo http-body-util = "0.1.0" tokio = { version = "1", features = ["macros", "test-util", "signal"] } tokio-test = "0.4" +tower = { version = "0.5", features = ["util"] } tower-test = "0.4" pretty_env_logger = "0.5" @@ -77,7 +78,7 @@ full = [ client = ["hyper/client", "tokio/net", "dep:tracing", "dep:futures-channel", "dep:tower-service"] client-legacy = ["client", "dep:socket2", "tokio/sync", "dep:libc", "dep:futures-util"] -client-pool = ["dep:futures-util", "dep:tower-layer"] +client-pool = ["tokio/sync", "dep:futures-util", "dep:tower-layer"] client-proxy = ["client", "dep:base64", "dep:ipnet", "dep:percent-encoding"] client-proxy-system = ["dep:system-configuration", "dep:windows-registry"] @@ -99,6 +100,10 @@ __internal_happy_eyeballs_tests = [] [[example]] name = "client" +required-features = ["client-legacy", "client-pool", "http1", "tokio"] + +[[example]] +name = "client_legacy" required-features = ["client-legacy", "http1", "tokio"] [[example]] diff --git a/examples/client.rs b/examples/client.rs index 04defac0..d40b357b 100644 --- a/examples/client.rs +++ b/examples/client.rs @@ -1,37 +1,157 @@ -use std::env; +use tower::ServiceExt; +use tower_service::Service; -use http_body_util::Empty; -use hyper::Request; -use hyper_util::client::legacy::{connect::HttpConnector, Client}; +use hyper_util::client::pool; #[tokio::main(flavor = "current_thread")] -async fn main() -> Result<(), Box> { - let url = match env::args().nth(1) { - Some(url) => url, - None => { - eprintln!("Usage: client "); - return Ok(()); - } - }; - - // HTTPS requires picking a TLS implementation, so give a better - // warning if the user tries to request an 'https' URL. - let url = url.parse::()?; - if url.scheme_str() != Some("http") { - eprintln!("This example only works with 'http' URLs."); - return Ok(()); +async fn main() -> Result<(), Box> { + send_nego().await +} + +async fn send_h1() -> Result<(), Box> { + let tcp = hyper_util::client::legacy::connect::HttpConnector::new(); + + let http1 = tcp.and_then(|conn| { + Box::pin(async move { + let (mut tx, c) = hyper::client::conn::http1::handshake::< + _, + http_body_util::Empty, + >(conn) + .await?; + tokio::spawn(async move { + if let Err(e) = c.await { + eprintln!("connection error: {:?}", e); + } + }); + let svc = tower::service_fn(move |req| tx.send_request(req)); + Ok::<_, Box>(svc) + }) + }); + + let mut p = pool::Cache::new(http1).build(); + + let mut c = p.call(http::Uri::from_static("http://hyper.rs")).await?; + eprintln!("{:?}", c); + + let req = http::Request::builder() + .header("host", "hyper.rs") + .body(http_body_util::Empty::new()) + .unwrap(); + + c.ready().await?; + let resp = c.call(req).await?; + eprintln!("{:?}", resp); + + Ok(()) +} + +async fn send_h2() -> Result<(), Box> { + let tcp = hyper_util::client::legacy::connect::HttpConnector::new(); + + let http2 = tcp.and_then(|conn| { + Box::pin(async move { + let (mut tx, c) = hyper::client::conn::http2::handshake::< + _, + _, + http_body_util::Empty, + >(hyper_util::rt::TokioExecutor::new(), conn) + .await?; + println!("connected"); + tokio::spawn(async move { + if let Err(e) = c.await { + eprintln!("connection error: {:?}", e); + } + }); + let svc = tower::service_fn(move |req| tx.send_request(req)); + Ok::<_, Box>(svc) + }) + }); + + let mut p = pool::Singleton::new(http2); + + for _ in 0..5 { + let mut c = p + .call(http::Uri::from_static("http://localhost:3000")) + .await?; + eprintln!("{:?}", c); + + let req = http::Request::builder() + .header("host", "hyper.rs") + .body(http_body_util::Empty::new()) + .unwrap(); + + c.ready().await?; + let resp = c.call(req).await?; + eprintln!("{:?}", resp); } - let client = Client::builder(hyper_util::rt::TokioExecutor::new()).build(HttpConnector::new()); + Ok(()) +} - let req = Request::builder() - .uri(url) - .body(Empty::::new())?; +async fn send_nego() -> Result<(), Box> { + let tcp = hyper_util::client::legacy::connect::HttpConnector::new(); - let resp = client.request(req).await?; + let http1 = tower::layer::layer_fn(|tcp| { + tower::service_fn(move |dst| { + let inner = tcp.call(dst); + async move { + let conn = inner.await?; + let (mut tx, c) = hyper::client::conn::http1::handshake::< + _, + http_body_util::Empty, + >(conn) + .await?; + tokio::spawn(async move { + if let Err(e) = c.await { + eprintln!("connection error: {:?}", e); + } + }); + let svc = tower::service_fn(move |req| tx.send_request(req)); + Ok::<_, Box>(svc) + } + }) + }); - eprintln!("{:?} {:?}", resp.version(), resp.status()); - eprintln!("{:#?}", resp.headers()); + let http2 = tower::layer::layer_fn(|tcp| { + tower::service_fn(move |dst| { + let inner = tcp.call(dst); + async move { + let conn = inner.await?; + let (mut tx, c) = hyper::client::conn::http2::handshake::< + _, + _, + http_body_util::Empty, + >(hyper_util::rt::TokioExecutor::new(), conn) + .await?; + println!("connected"); + tokio::spawn(async move { + if let Err(e) = c.await { + eprintln!("connection error: {:?}", e); + } + }); + let svc = tower::service_fn(move |req| tx.send_request(req)); + Ok::<_, Box>(svc) + } + }) + }); + + let mut svc = pool::negotiate(tcp, |_| false, http1, http2); + + for _ in 0..5 { + let mut c = svc + .call(http::Uri::from_static("http://localhost:3000")) + .await?; + eprintln!("{:?}", c); + + let req = http::Request::builder() + .header("host", "hyper.rs") + .body(http_body_util::Empty::new()) + .unwrap(); + + c.ready().await?; + let resp = c.call(req).await?; + eprintln!("{:?}", resp); + } Ok(()) } diff --git a/examples/client_legacy.rs b/examples/client_legacy.rs new file mode 100644 index 00000000..04defac0 --- /dev/null +++ b/examples/client_legacy.rs @@ -0,0 +1,37 @@ +use std::env; + +use http_body_util::Empty; +use hyper::Request; +use hyper_util::client::legacy::{connect::HttpConnector, Client}; + +#[tokio::main(flavor = "current_thread")] +async fn main() -> Result<(), Box> { + let url = match env::args().nth(1) { + Some(url) => url, + None => { + eprintln!("Usage: client "); + return Ok(()); + } + }; + + // HTTPS requires picking a TLS implementation, so give a better + // warning if the user tries to request an 'https' URL. + let url = url.parse::()?; + if url.scheme_str() != Some("http") { + eprintln!("This example only works with 'http' URLs."); + return Ok(()); + } + + let client = Client::builder(hyper_util::rt::TokioExecutor::new()).build(HttpConnector::new()); + + let req = Request::builder() + .uri(url) + .body(Empty::::new())?; + + let resp = client.request(req).await?; + + eprintln!("{:?} {:?}", resp.version(), resp.status()); + eprintln!("{:#?}", resp.headers()); + + Ok(()) +} diff --git a/src/client/pool/expire.rs b/src/client/pool/expire.rs index 281c7253..bac1f6c9 100644 --- a/src/client/pool/expire.rs +++ b/src/client/pool/expire.rs @@ -1,3 +1,6 @@ +//! todo + +/// todo pub struct Expire { } diff --git a/src/client/pool/mod.rs b/src/client/pool/mod.rs index 9f1a8fce..0db07a50 100644 --- a/src/client/pool/mod.rs +++ b/src/client/pool/mod.rs @@ -1,6 +1,7 @@ //! Composable pool services pub mod cache; +pub mod expire; pub mod map; pub mod negotiate; pub mod singleton; diff --git a/src/lib.rs b/src/lib.rs index 65bbe465..ef133f6c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,7 +12,11 @@ mod common; pub mod rt; #[cfg(feature = "server")] pub mod server; -#[cfg(any(feature = "service", feature = "client-legacy"))] +#[cfg(any( + feature = "service", + feature = "client-legacy", + feature = "client-pool", +))] pub mod service; mod error;