Struct HttpServer

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

The almighty HTTP server.

Guide:

  1. Create the server
let mut server = HttpServer::new(HttpServerMode::MultiThread(HttpServerThreadPool::new(2)), "127.0.0.1:3000");
  1. Insert handlers
server.insert_handler(|mut req, mut res| {
    res.set_status(HttpStatusStruct(200, "OK"));
    res.set_body(String::from("value"), String::from("Hello World!"));
    Ok(req, res)
});
  1. Listen
server.listen(|| {
    println!("Server is listening at http://127.0.0.1:3000");
});

Implementations§

Source§

impl HttpServer

Source

pub fn new(mode: HttpServerMode, bind_adr: &str) -> Self

Source

pub fn listen<F>(&self, cb: F)
where F: Fn(),

Source

pub fn insert_handler<F>(&mut self, handler: F)

Source

pub fn set_error_handler<F>(&mut self, handler: F)
where F: Fn(HttpRequest, HttpResponse, Box<dyn Error>) -> (HttpRequest, HttpResponse) + Send + Sync + 'static,

Custom error handling function

Example:

server.set_error_handler(|req, mut res, err| {
    res.set_status(HttpStatusStruct(500, "Interal Server Error"));
    res.text(format!("Unhandled exception: {:?}", err));
    (req, res)
});

Trait Implementations§

Source§

impl Routing for HttpServer

Source§

fn insert_router(&mut self, router: Router)

Source§

impl ServeStatic for HttpServer

Source§

fn serve_static(&mut self, root_dir: Option<String>)

Serve files in the root_dir folder. Default root dir is public.

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.