diff options
author | softprops <d.tangren@gmail.com> | 2016-01-03 14:16:51 -0500 |
---|---|---|
committer | softprops <d.tangren@gmail.com> | 2016-01-03 14:16:51 -0500 |
commit | d97ce41bafc0aefc88cb7b2ee905402caec93535 (patch) | |
tree | 9c2ed909ad00390c58e275ad71f046372f404d93 /src/errors.rs | |
parent | 4500103c44b3de45bae2d6e4a50b5c4b5aad5d5c (diff) |
better error rep
Diffstat (limited to 'src/errors.rs')
-rw-r--r-- | src/errors.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/errors.rs b/src/errors.rs new file mode 100644 index 0000000..68568c8 --- /dev/null +++ b/src/errors.rs @@ -0,0 +1,37 @@ +use std::io::Error as IoError; +use hyper::Error as HttpError; +use hyper::status::StatusCode; +use rustc_serialize::json::{DecoderError,EncoderError}; + +#[derive(Debug)] +pub enum Error { + Decoding(DecoderError), + Encoding(EncoderError), + Http(HttpError), + IO(IoError), + Fault { code: StatusCode, message: String } +} + +impl From<DecoderError> for Error { + fn from(error: DecoderError) -> Error { + Error::Decoding(error) + } +} + +impl From<EncoderError> for Error { + fn from(error: EncoderError) -> Error { + Error::Encoding(error) + } +} + +impl From<HttpError> for Error { + fn from(error: HttpError) -> Error { + Error::Http(error) + } +} + +impl From<IoError> for Error { + fn from(error: IoError) -> Error { + Error::IO(error) + } +} |