summaryrefslogtreecommitdiffstats
path: root/src/errors.rs
diff options
context:
space:
mode:
authorsoftprops <d.tangren@gmail.com>2016-01-03 14:16:51 -0500
committersoftprops <d.tangren@gmail.com>2016-01-03 14:16:51 -0500
commitd97ce41bafc0aefc88cb7b2ee905402caec93535 (patch)
tree9c2ed909ad00390c58e275ad71f046372f404d93 /src/errors.rs
parent4500103c44b3de45bae2d6e4a50b5c4b5aad5d5c (diff)
better error rep
Diffstat (limited to 'src/errors.rs')
-rw-r--r--src/errors.rs37
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)
+ }
+}