Struct Server

Source
pub struct Server { /* private fields */ }
Expand description

A high-level server type.

For examples, see the module doc.

Implementations§

Source§

impl Server

Source

pub fn new(connection_builder: Builder<TokioExecutor>) -> Self

Creates a new Server with the provided Builder.

Source

pub fn with_graceful_shutdown_duration(self, duration: Duration) -> Self

Sets the graceful shutdown duration. By default, the server shuts down immediately.

Source

pub async fn serve<S, A>( &self, service: S, listener_addresses: A, ) -> Result<(), ServerError>
where S: Service<Request<Incoming>, Response = Response<Body>> + CloneWithPeerAddr + Clone + Send + 'static, S::Future: Send + 'static, S::Error: Into<BoxedError>, A: ToSocketAddrs,

Serves HTTP connections with the service on the first successfully bound listener address.

§Panics
  • if there is no valid address with an unused port to bind TcpListener
  • on Unix systems if getting a signal listener to listen to SIGTERM, has failed
Source

pub async fn serve_with_tls<S, A>( &self, service: S, listener_addresses: A, tls_server_config: TlsServerConfig, ) -> Result<(), ServerError>
where S: Service<Request<Incoming>, Response = Response<Body>> + CloneWithPeerAddr + Clone + Send + 'static, S::Future: Send + 'static, S::Error: Into<BoxedError>, A: ToSocketAddrs,

Available on crate feature tls only.

Serves HTTPS connections with the service on the first successfully bound listener address.

TLS can be configured with TlsServerConfig (TlsServerConfig is an alias for rustls’s ServerConfig).

§Panics
  • if there is no valid address with an unused port to bind TcpListener
  • on Unix systems if getting a signal listener to listen to SIGTERM, has failed

Auto Trait Implementations§

§

impl Freeze for Server

§

impl !RefUnwindSafe for Server

§

impl Send for Server

§

impl Sync for Server

§

impl Unpin for Server

§

impl !UnwindSafe for Server

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more