pub struct Builder<E> { /* private fields */ }
server
and (crate features http1
or http2
) only.Expand description
Http1 or Http2 connection builder.
Implementations§
Source§impl<E> Builder<E>
impl<E> Builder<E>
Sourcepub fn http1(&mut self) -> Http1Builder<'_, E>
Available on crate feature http1
only.
pub fn http1(&mut self) -> Http1Builder<'_, E>
http1
only.Http1 configuration.
Sourcepub fn http2(&mut self) -> Http2Builder<'_, E>
Available on crate feature http2
only.
pub fn http2(&mut self) -> Http2Builder<'_, E>
http2
only.Http2 configuration.
Sourcepub fn http2_only(self) -> Self
Available on crate feature http2
only.
pub fn http2_only(self) -> Self
http2
only.Only accepts HTTP/2
Does not do anything if used with serve_connection_with_upgrades
Sourcepub fn http1_only(self) -> Self
Available on crate feature http1
only.
pub fn http1_only(self) -> Self
http1
only.Only accepts HTTP/1
Does not do anything if used with serve_connection_with_upgrades
Sourcepub fn is_http1_available(&self) -> bool
pub fn is_http1_available(&self) -> bool
Returns true
if this builder can serve an HTTP/1.1-based connection.
Sourcepub fn is_http2_available(&self) -> bool
pub fn is_http2_available(&self) -> bool
Returns true
if this builder can serve an HTTP/2-based connection.
Sourcepub fn title_case_headers(self, enabled: bool) -> Self
Available on crate feature http1
only.
pub fn title_case_headers(self, enabled: bool) -> Self
http1
only.Set whether HTTP/1 connections will write header names as title case at the socket level.
This setting only affects HTTP/1 connections. HTTP/2 connections are not affected by this setting.
Default is false.
§Example
use hyper_util::{
rt::TokioExecutor,
server::conn::auto,
};
auto::Builder::new(TokioExecutor::new())
.title_case_headers(true);
Sourcepub fn preserve_header_case(self, enabled: bool) -> Self
Available on crate feature http1
only.
pub fn preserve_header_case(self, enabled: bool) -> Self
http1
only.Set whether HTTP/1 connections will preserve the original case of header names.
This setting only affects HTTP/1 connections. HTTP/2 connections are not affected by this setting.
Default is false.
§Example
use hyper_util::{
rt::TokioExecutor,
server::conn::auto,
};
auto::Builder::new(TokioExecutor::new())
.preserve_header_case(true);
Sourcepub fn serve_connection<I, S, B>(
&self,
io: I,
service: S,
) -> Connection<'_, I, S, E> ⓘ
pub fn serve_connection<I, S, B>( &self, io: I, service: S, ) -> Connection<'_, I, S, E> ⓘ
Bind a connection together with a Service
.
Sourcepub fn serve_connection_with_upgrades<I, S, B>(
&self,
io: I,
service: S,
) -> UpgradeableConnection<'_, I, S, E> ⓘ
pub fn serve_connection_with_upgrades<I, S, B>( &self, io: I, service: S, ) -> UpgradeableConnection<'_, I, S, E> ⓘ
Bind a connection together with a Service
, with the ability to
handle HTTP upgrades. This requires that the IO object implements
Send
.
Note that if you ever want to use hyper::upgrade::Upgraded::downcast
with this crate, you’ll need to use hyper_util::server::conn::auto::upgrade::downcast
instead. See the documentation of the latter to understand why.