HttpServer

Struct HttpServer 

Source
pub struct HttpServer<L>
where L: Layer<HandlerFn> + Clone + Send + 'static,
{ /* private fields */ }
Expand description

Represents a running HTTP server.

To construct a server, use HttpServer::builder or the builder struct directly HttpServerBuilder.

Implementations§

Source§

impl<L> HttpServer<L>
where L: Layer<HandlerFn> + Clone + Send + 'static, L::Service: Service<(HttpRequest, HttpPayload), Response = HttpResponse, Error = Error> + Send + 'static, <L::Service as Service<(HttpRequest, HttpPayload)>>::Future: Send + 'static,

Source

pub fn builder<T: ToSocketAddrs + Default + Debug + Clone>() -> HttpServerBuilder<T, Identity>

Returns a new HttpServerBuilder for configuring and building an HttpServer.

Source

pub async fn serve(self) -> Result<(), ServerError>

Starts the server and listens for incoming connections.

Examples found in repository?
examples/device_id.rs (line 120)
111async fn main() -> Result<(), HttpServerError> {
112    logger::init_tracing()?;
113
114    let server = HttpServerBuilder::default()
115        .bind("0.0.0.0:4221")
116        .service(devices)
117        .build()
118        .await?;
119
120    match server.serve().await {
121        Ok(_) => (),
122        Err(e) => panic!("Failed to serve: {}", e),
123    }
124
125    Ok(())
126}
More examples
Hide additional examples
examples/basic.rs (line 206)
188async fn main() -> Result<(), HttpServerError> {
189    logger::init_tracing()?;
190    let state = State {
191        dir: "/Users/emil/projects/tosic-http/target/doc".to_string(),
192    };
193
194    let server = HttpServerBuilder::default()
195        .app_state(state)
196        .bind("0.0.0.0:4221")
197        //.service_method(Method::POST, "/", test_handler)
198        .route(post("/", test_handler).get(test_get))
199        //.service_method(Method::GET, "/bad", not_working)
200        .service(not_working)
201        .service(test_fn)
202        //.service(website)
203        .build()
204        .await?;
205
206    match server.serve().await {
207        Ok(_) => (),
208        Err(e) => panic!("Failed to serve: {}", e),
209    }
210
211    Ok(())
212}

Auto Trait Implementations§

§

impl<L> !Freeze for HttpServer<L>

§

impl<L> !RefUnwindSafe for HttpServer<L>

§

impl<L> Send for HttpServer<L>

§

impl<L> Sync for HttpServer<L>
where L: Sync,

§

impl<L> Unpin for HttpServer<L>
where L: Unpin,

§

impl<L> !UnwindSafe for HttpServer<L>

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