miasht 0.0.5

Minimum asynchronous HTTP server/client library
Documentation
use std::io;
use std::sync::mpsc::RecvError;
use httparse;
use handy_async::error::AsyncError;
use trackable::error::TrackableError;
use trackable::error::{ErrorKind, ErrorKindExt};

use header;
use status::Status;

#[derive(Debug, Clone)]
pub struct Error(TrackableError<Status>);
derive_traits_for_trackable_error_newtype!(Error, Status);
impl From<io::Error> for Error {
    fn from(f: io::Error) -> Self {
        Status::InternalServerError.cause(f).into()
    }
}
impl<T> From<AsyncError<T, io::Error>> for Error {
    fn from(f: AsyncError<T, io::Error>) -> Self {
        Status::InternalServerError.cause(f.into_error()).into()
    }
}
impl From<httparse::Error> for Error {
    fn from(f: httparse::Error) -> Self {
        Status::BadRequest.cause(f).into()
    }
}
impl<E: ::std::error::Error + Send + Sync + 'static> From<header::ParseValueError<E>> for Error {
    fn from(f: header::ParseValueError<E>) -> Self {
        Status::BadRequest.cause(f).into()
    }
}
impl From<RecvError> for Error {
    fn from(f: RecvError) -> Self {
        Status::BadRequest.cause(f).into()
    }
}

impl ErrorKind for Status {}