1
0
mirror of https://github.com/fafhrd91/actix-web synced 2025-08-19 12:25:37 +02:00

remove unsafe from scope impl

This commit is contained in:
Nikolay Kim
2018-06-19 23:46:58 +06:00
parent c427fd1241
commit a69c1e3de5
5 changed files with 82 additions and 82 deletions

View File

@@ -1,9 +1,9 @@
use std::cell::RefCell;
use std::marker::PhantomData;
use std::rc::Rc;
use std::cell::RefCell;
use futures::Future;
use http::{Method, StatusCode};
use http::Method;
use smallvec::SmallVec;
use error::Error;
@@ -282,21 +282,18 @@ impl<S: 'static> ResourceHandler<S> {
}
pub(crate) fn handle(
&mut self, mut req: HttpRequest<S>, default: Option<&mut ResourceHandler<S>>,
) -> AsyncResult<HttpResponse> {
&mut self, mut req: HttpRequest<S>,
) -> Result<AsyncResult<HttpResponse>, HttpRequest<S>> {
for route in &mut self.routes {
if route.check(&mut req) {
return if self.middlewares.borrow().is_empty() {
route.handle(req)
Ok(route.handle(req))
} else {
route.compose(req, Rc::clone(&self.middlewares))
Ok(route.compose(req, Rc::clone(&self.middlewares)))
};
}
}
if let Some(resource) = default {
resource.handle(req, None)
} else {
AsyncResult::ok(HttpResponse::new(StatusCode::NOT_FOUND))
}
Err(req)
}
}