thruster 1.3.13

A middleware based http async web server.
Documentation
use http::request::Parts;
use hyper::{Body, Request};
use std::net::IpAddr;

use crate::parser::tree::Params;
use crate::RequestWithParams;

pub struct HyperRequest {
    pub request: Request<Body>,
    pub parts: Option<Parts>,
    pub body: Option<Body>,
    pub params: Params,
    pub ip: Option<IpAddr>,
}

impl HyperRequest {
    pub fn new(request: Request<Body>) -> HyperRequest {
        HyperRequest {
            request,
            parts: None,
            body: None,
            params: Params::default(),
            ip: None,
        }
    }
}

impl Default for HyperRequest {
    fn default() -> Self {
        HyperRequest::new(Request::default())
    }
}

impl RequestWithParams for HyperRequest {
    fn set_params(&mut self, params: Params) {
        self.params = params;
    }

    fn get_params<'a>(&'a self) -> &'a Params {
        &self.params
    }
}