use crate::http::{Method, ReqResDataMut, Response, StatusCode, Version};
#[derive(Debug)]
pub struct Request<RRD> {
pub method: Method,
pub rrd: RRD,
pub version: Version,
}
impl<RRD> Request<RRD> {
#[inline]
pub const fn new(method: Method, rrd: RRD, version: Version) -> Self {
Self { method, rrd, version }
}
#[inline]
pub const fn http2(method: Method, rrd: RRD) -> Self {
Self { method, rrd, version: Version::Http2 }
}
#[inline]
pub fn into_response(self, status_code: StatusCode) -> Response<RRD> {
Response { rrd: self.rrd, status_code, version: self.version }
}
}
impl<RRD> Request<RRD>
where
RRD: ReqResDataMut,
{
#[inline]
pub fn clear(&mut self) {
self.rrd.clear();
}
}