rustiful 0.1.0

This crate is for creating a JSONAPI backend, backed by Iron.
use super::status::Status;
use std::error::Error;

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct JsonApiErrorArray {
    pub errors: Vec<JsonApiError>,
}

impl JsonApiErrorArray {
    pub fn new<T: Error>(error: &T, status: Status) -> JsonApiErrorArray {
        JsonApiErrorArray { errors: vec![JsonApiError::new(error, status)] }
    }
}

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct JsonApiError {
    pub title: String,
    pub status: String,
    pub detail: String,
}

impl JsonApiError {
    pub fn new<T: Error>(error: &T, status: Status) -> JsonApiError {
        JsonApiError {
            title: error.description().to_string(),
            status: status.to_u16().to_string(),
            detail: format!("{}", error),
        }
    }
}