use hyper;
use nson::Message;
use super::App;
use crate::http::Request;
use crate::http::Response;
pub struct Context<'a> {
pub app: &'a App,
pub request: Request,
pub response: Response,
pub contexts: Message,
stop: bool,
}
impl<'a> Context<'a> {
pub(crate) fn new(app: &App, hyper_request: hyper::Request<hyper::Body>) -> Context {
let request = Request::from_hyper_request(hyper_request);
let response = Response::empty(200);
Context {
app: app,
request: request,
response: response,
contexts: Message::new(),
stop: false,
}
}
pub fn stop(&mut self) {
self.stop = true;
}
pub(crate) fn next(&self) -> bool {
!self.stop
}
pub(crate) fn finish(self) -> hyper::Response<hyper::Body> {
self.response.raw_response()
}
}