feat(server): Make the server code an optional feature (#2334)
cc #2223 BREAKING CHANGE: The HTTP server code is now an optional feature. To enable the server, add `features = ["server"]` to the dependency in your `Cargo.toml`.
This commit is contained in:
@@ -21,7 +21,7 @@ use crate::common::{task, watch, Pin, Poll};
|
||||
#[cfg(any(feature = "http1", feature = "http2"))]
|
||||
#[cfg(feature = "client")]
|
||||
use crate::common::{Future, Never};
|
||||
#[cfg(feature = "http2")]
|
||||
#[cfg(all(feature = "http2", any(feature = "client", feature = "server")))]
|
||||
use crate::proto::h2::ping;
|
||||
use crate::upgrade::OnUpgrade;
|
||||
|
||||
@@ -46,7 +46,7 @@ enum Kind {
|
||||
want_tx: watch::Sender,
|
||||
rx: mpsc::Receiver<Result<Bytes, crate::Error>>,
|
||||
},
|
||||
#[cfg(feature = "http2")]
|
||||
#[cfg(all(feature = "http2", any(feature = "client", feature = "server")))]
|
||||
H2 {
|
||||
ping: ping::Recorder,
|
||||
content_length: DecodedLength,
|
||||
@@ -200,7 +200,7 @@ impl Body {
|
||||
Body { kind, extra: None }
|
||||
}
|
||||
|
||||
#[cfg(feature = "http2")]
|
||||
#[cfg(all(feature = "http2", any(feature = "client", feature = "server")))]
|
||||
pub(crate) fn h2(
|
||||
recv: h2::RecvStream,
|
||||
content_length: DecodedLength,
|
||||
@@ -301,7 +301,7 @@ impl Body {
|
||||
None => Poll::Ready(None),
|
||||
}
|
||||
}
|
||||
#[cfg(feature = "http2")]
|
||||
#[cfg(all(feature = "http2", any(feature = "client", feature = "server")))]
|
||||
Kind::H2 {
|
||||
ref ping,
|
||||
recv: ref mut h2,
|
||||
@@ -359,7 +359,7 @@ impl HttpBody for Body {
|
||||
#[cfg_attr(not(feature = "http2"), allow(unused))] cx: &mut task::Context<'_>,
|
||||
) -> Poll<Result<Option<HeaderMap>, Self::Error>> {
|
||||
match self.kind {
|
||||
#[cfg(feature = "http2")]
|
||||
#[cfg(all(feature = "http2", any(feature = "client", feature = "server")))]
|
||||
Kind::H2 {
|
||||
recv: ref mut h2,
|
||||
ref ping,
|
||||
@@ -379,7 +379,7 @@ impl HttpBody for Body {
|
||||
match self.kind {
|
||||
Kind::Once(ref val) => val.is_none(),
|
||||
Kind::Chan { content_length, .. } => content_length == DecodedLength::ZERO,
|
||||
#[cfg(feature = "http2")]
|
||||
#[cfg(all(feature = "http2", any(feature = "client", feature = "server")))]
|
||||
Kind::H2 { recv: ref h2, .. } => h2.is_end_stream(),
|
||||
#[cfg(feature = "stream")]
|
||||
Kind::Wrapped(..) => false,
|
||||
@@ -405,7 +405,7 @@ impl HttpBody for Body {
|
||||
#[cfg(feature = "stream")]
|
||||
Kind::Wrapped(..) => SizeHint::default(),
|
||||
Kind::Chan { content_length, .. } => opt_len!(content_length),
|
||||
#[cfg(feature = "http2")]
|
||||
#[cfg(all(feature = "http2", any(feature = "client", feature = "server")))]
|
||||
Kind::H2 { content_length, .. } => opt_len!(content_length),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user