Skip to main content

ServerBuilder

Struct ServerBuilder 

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

Server builder for configuring the runtime.

Implementations§

Source§

impl ServerBuilder

Source

pub fn with_config(self, cfg: ServerConfig) -> Self

Apply a custom server configuration.

Source

pub fn with_graceful_shutdown<F>(self, fut: F) -> Self
where F: Future<Output = ()> + Send + 'static,

Provide a future to trigger graceful shutdown.

Examples found in repository?
examples/history.rs (lines 51-53)
40pub async fn main() -> Result<()> {
41    let addr = env::args()
42        .nth(1)
43        .unwrap_or_else(|| "0.0.0.0:6379".to_string());
44
45    let app = Router::from_state(AppState::default())
46        .route("HISTORY", history)
47        .route("COMMAND", history)
48        .route("PING", ping);
49
50    Server::bind(&addr)
51        .with_graceful_shutdown(async {
52            let _ = signal::ctrl_c().await;
53        })
54        .serve(app)
55        .await
56}
Source

pub fn with_hooks<H>(self, hooks: H) -> Self
where H: ServerHooks,

Provide observability hooks for the server runtime.

Examples found in repository?
examples/router.rs (line 28)
25pub async fn main() -> Result<()> {
26    let app: Router<()> = Router::new().route("PING", ping);
27    Server::bind("0.0.0.0:6379")
28        .with_hooks(Hooks)
29        .serve(app)
30        .await
31}
Source

pub fn with_connection_extensions<F>(self, factory: F) -> Self
where F: Fn(ConnectionInfo) -> Extensions + Send + Sync + 'static,

Provide per-connection extensions for request contexts.

The factory is invoked once per connection and its Extensions are cloned into each RequestContext for that connection.

Source

pub async fn serve<State>(self, app: Router<State>) -> Result<()>
where State: Send + Sync + 'static,

Examples found in repository?
examples/router.rs (line 29)
25pub async fn main() -> Result<()> {
26    let app: Router<()> = Router::new().route("PING", ping);
27    Server::bind("0.0.0.0:6379")
28        .with_hooks(Hooks)
29        .serve(app)
30        .await
31}
More examples
Hide additional examples
examples/history.rs (line 54)
40pub async fn main() -> Result<()> {
41    let addr = env::args()
42        .nth(1)
43        .unwrap_or_else(|| "0.0.0.0:6379".to_string());
44
45    let app = Router::from_state(AppState::default())
46        .route("HISTORY", history)
47        .route("COMMAND", history)
48        .route("PING", ping);
49
50    Server::bind(&addr)
51        .with_graceful_shutdown(async {
52            let _ = signal::ctrl_c().await;
53        })
54        .serve(app)
55        .await
56}
Source

pub async fn serve_with_listener<State>( self, listener: TcpListener, app: Router<State>, ) -> Result<()>
where State: Send + Sync + 'static,

Serve using a pre-bound listener (useful for tests).

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