From 407b46e3babc8e2eb7eadfa093a617e2290d9459 Mon Sep 17 00:00:00 2001 From: sigoden Date: Sat, 16 Dec 2023 03:29:42 +0000 Subject: [PATCH 1/3] feat: tower should be an optional dependency --- Cargo.toml | 8 +++++--- src/lib.rs | 5 +---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1245b178..e833498f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,8 +27,8 @@ pin-project-lite = "0.2.4" socket2 = { version = "0.5", optional = true, features = ["all"] } tracing = { version = "0.1", default-features = false, features = ["std"] } tokio = { version = "1", optional = true, features = ["net", "rt", "time"] } -tower-service = "0.3" -tower = { version = "0.4.1", features = ["make", "util"] } +tower-service ={ version = "0.3", optional = true } +tower = { version = "0.4.1", optional = true, features = ["make", "util"] } [dev-dependencies] hyper = { version = "1.0.0", features = ["full"] } @@ -49,16 +49,18 @@ full = [ "client-legacy", "server", "server-auto", + "service", "http1", "http2", "tokio", ] -client = ["hyper/client"] +client = ["hyper/client", "dep:tower-service", "dep:tower"] client-legacy = ["client"] server = ["hyper/server"] server-auto = ["server", "http1", "http2"] +service = ["dep:tower"] http1 = ["hyper/http1"] http2 = ["hyper/http2"] diff --git a/src/lib.rs b/src/lib.rs index 04979c75..9df734cf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,10 +12,7 @@ mod common; pub mod rt; #[cfg(feature = "server")] pub mod server; -#[cfg(all( - any(feature = "http1", feature = "http2"), - any(feature = "server", feature = "client") -))] +#[cfg(feature = "service")] pub mod service; mod error; From a2c7242ae20f0940db3bf58e412c6c4832895f53 Mon Sep 17 00:00:00 2001 From: sigoden Date: Sat, 16 Dec 2023 14:19:50 +0000 Subject: [PATCH 2/3] fix cfg of the service feature --- Cargo.toml | 5 +++-- src/service.rs | 8 -------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e833498f..841c4b96 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,12 +55,13 @@ full = [ "tokio", ] -client = ["hyper/client", "dep:tower-service", "dep:tower"] +client = ["hyper/client", "dep:tower", "dep:tower-service"] client-legacy = ["client"] server = ["hyper/server"] server-auto = ["server", "http1", "http2"] -service = ["dep:tower"] + +service = ["dep:tower", "dep:tower-service"] http1 = ["hyper/http1"] http2 = ["hyper/http2"] diff --git a/src/service.rs b/src/service.rs index 4664bd14..4652a6ab 100644 --- a/src/service.rs +++ b/src/service.rs @@ -9,10 +9,6 @@ use std::{ use tower::{util::Oneshot, ServiceExt}; /// A tower service converted into a hyper service. -#[cfg(all( - any(feature = "http1", feature = "http2"), - any(feature = "server", feature = "client") -))] #[derive(Debug, Copy, Clone)] pub struct TowerToHyperService { service: S, @@ -44,10 +40,6 @@ where pin_project! { /// Response future for [`TowerToHyperService`]. - #[cfg(all( - any(feature = "http1", feature = "http2"), - any(feature = "server", feature = "client") - ))] pub struct TowerToHyperServiceFuture where S: tower_service::Service, From a017301af51567d3e43353979511de5eab37d245 Mon Sep 17 00:00:00 2001 From: sigoden Date: Sat, 16 Dec 2023 14:53:57 +0000 Subject: [PATCH 3/3] fix cfg of mod service --- src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 9df734cf..15a58116 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(feature = "service")] +#[cfg(all( + feature = "service", + any(feature = "http1", feature = "http2"), + any(feature = "server", feature = "client") +))] pub mod service; mod error;