Struct wtransport::ServerConfig

source ·
pub struct ServerConfig { /* private fields */ }
Expand description

Server configuration.

You can create an instance of ServerConfig using its builder pattern by calling the builder() method. Once you have an instance, you can further customize it by chaining method calls to set various configuration options.

§Configuration Builder States

The configuration process follows a state-based builder pattern, where the server configuration progresses through 3 states.

§1. WantsBindAddress

The caller must supply a binding address for the server. This is where to specify the listening port of the server. The following options are mutually exclusive:

Only one of these options can be selected during the client configuration process.

§Examples:
use wtransport::ServerConfig;

// Configuration for accepting incoming connection on port 443
ServerConfig::builder().with_bind_default(443);

§2. WantsIdentity

The caller must supply a TLS identity for the server.

§Examples:
use wtransport::Identity;
use wtransport::ServerConfig;

ServerConfig::builder()
    .with_bind_default(443)
    .with_identity(&Identity::load_pemfiles("cert.pem", "key.pem").await?);

§3. WantsTransportConfigServer

The caller can supply additional transport configurations. Multiple options can be given at this stage. Once the configuration is completed, it is possible to finalize with the method build().

All these options can be omitted in the configuration; default values will be used.

§Examples:
use wtransport::ServerConfig;
use wtransport::Identity;
use std::time::Duration;

let server_config = ServerConfig::builder()
    .with_bind_default(443)
    .with_identity(&Identity::load_pemfiles("cert.pem", "key.pem").await?)
    .keep_alive_interval(Some(Duration::from_secs(3)))
    .build();

Implementations§

source§

impl ServerConfig

source

pub fn builder() -> ServerConfigBuilder<WantsBindAddress>

Creates a builder to build up the server configuration.

For more information, see the ServerConfigBuilder documentation.

source

pub fn quic_config(&self) -> &ServerConfig

Available on crate feature quinn only.

Returns a reference to the inner QUIC configuration.

source

pub fn quic_config_mut(&mut self) -> &mut ServerConfig

Available on crate feature quinn only.

Returns a mutable reference to the inner QUIC configuration.

Auto Trait Implementations§

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

source§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

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

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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