Struct Server

Source
pub struct Server<T: Clone + Send + 'static> {
    pub max_content_length: usize,
    pub endpoints: Vec<EndPoint<T>>,
    pub static_endpoints: HashMap<String, String>,
    pub public_var: Option<T>,
    /* private fields */
}

Fields§

§max_content_length: usize§endpoints: Vec<EndPoint<T>>§static_endpoints: HashMap<String, String>§public_var: Option<T>

Implementations§

Source§

impl<T: Clone + Send + 'static> Server<T>

Source

pub fn new( max_content_length: Option<usize>, public_var: Option<T>, ) -> Server<T>

max_content_length is the max length of the request in bytes.

For example if the max is set to 1024 but the request is 1 000 000 it will close it straight away.

Source

pub fn use_middleware( &mut self, handle: fn(url: &Url, req: &Request, res: &mut Response, public_var: &Option<T>) -> bool, )

Add function as middleware (just before sending response). The response is a bool. If it’s true, the request will continue; if it’s false, it will stop.

Source

pub fn new_static( &mut self, path: &str, folder: &str, ) -> Result<(), HttpServerError>

Creates a new static url For example a folder named “images” on path /images every image in that folder will be exposed like “/images/example.png”

Source

pub fn get( &mut self, path: &str, handle: fn(req: Request, res: Response, public_var: Option<T>), ) -> Result<(), HttpServerError>

Creates a new GET endpoint

Source

pub fn post( &mut self, path: &str, handle: fn(req: Request, res: Response, public_var: Option<T>), ) -> Result<(), HttpServerError>

Creates a new POST endpoint

Source

pub fn put( &mut self, path: &str, handle: fn(req: Request, res: Response, public_var: Option<T>), ) -> Result<(), HttpServerError>

Creates a new PUT endpoint

Source

pub fn delete( &mut self, path: &str, handle: fn(req: Request, res: Response, public_var: Option<T>), ) -> Result<(), HttpServerError>

Creates a new DELETE endpoint

Source

pub fn listen( &mut self, port: u32, address: Option<&str>, threads: Option<usize>, on_complete: fn(), ) -> Result<(), HttpServerError>

Starts listening on the given port. If no provided threads will use cpu threads as value. The higher the value the higher the cpu usage. The on_complete function is executed after the listener has started.

Source

pub fn lock()

Locks the thread from stoping (put it in the end of the main file to keep the server running);

Auto Trait Implementations§

§

impl<T> Freeze for Server<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Server<T>
where T: RefUnwindSafe,

§

impl<T> Send for Server<T>

§

impl<T> Sync for Server<T>
where T: Sync,

§

impl<T> Unpin for Server<T>
where T: Unpin,

§

impl<T> UnwindSafe for Server<T>
where T: UnwindSafe,

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.