rustiful 0.1.0

This crate is for creating a JSONAPI backend, backed by Iron.
extern crate iron;

use self::iron::prelude::*;
use super::Status;
use super::super::RequestResult;
use FromRequest;
use errors::FromRequestError;
use iron::id;
use request::FromDelete;
use service::JsonDelete;
use std::error::Error;
use std::str::FromStr;
use try_from::TryInto;

autoimpl! {
    pub trait DeleteHandler<'a, T>
        where T: JsonDelete + FromDelete<'a, T>,
              T::Error: 'static,
              Status: for<'b> From<&'b T::Error>,
              <T::Context as FromRequest>::Error: 'static,
              <T::JsonApiIdType as FromStr>::Err: Error
    {
        fn delete(req: &'a mut Request) -> IronResult<Response> {
            match FromRequest::from_request(req) {
                Ok(res) => {
                    let result = <T as FromDelete<T>>::delete(id(req), res);
                    RequestResult(result, Status::NoContent).try_into()
                },
                Err(e) => FromRequestError::<<T::Context as FromRequest>::Error>(e).into()
            }
        }
    }
}