rustless 0.3.0

Rustless is a REST-like API micro-framework for Rust.
use typemap;
use framework::api;
use backend;
use server::status;
use errors;

pub struct Application {
    pub ext: typemap::TypeMap,
    pub root_api: api::Api 
}

unsafe impl Send for Application {}

impl Application {
    pub fn new(root_api: api::Api) -> Application {
        Application {
            root_api: root_api,
            ext: typemap::TypeMap::new()
        }
    }

    pub fn call(&self, req: &mut backend::Request) -> backend::HandleResult<backend::Response> {
        self.root_api.call((req.url().path().connect("/").as_slice()).as_slice(), req, self)
    }

    pub fn call_with_not_found(&self, req: &mut backend::Request) -> backend::HandleResult<backend::Response> {
        let res = self.call(req);
        match res {
            Ok(res) => Ok(res),
            Err(err) => {
                if err.downcast::<errors::NotMatch>().is_some() {
                    return Ok(backend::Response::from_string(status::StatusCode::NotFound, "".to_string()));
                }
                return Err(err);
            }
        }
    }
}