diff options
author | Nadrieril | 2019-04-10 21:46:25 +0200 |
---|---|---|
committer | Nadrieril | 2019-04-10 21:56:31 +0200 |
commit | c7184b841279a55bdfb39bde429896d221aa666c (patch) | |
tree | d4aaeed957b77b6f906411baf9bcdc1a3dbc87bb /dhall/src/error.rs | |
parent | 56edb3a50fb4168ed76a3795f0ed774a754b6c32 (diff) |
Cleanup error handling
Closes #41
Diffstat (limited to '')
-rw-r--r-- | dhall/src/error.rs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/dhall/src/error.rs b/dhall/src/error.rs index ef8dd34..eba7ff5 100644 --- a/dhall/src/error.rs +++ b/dhall/src/error.rs @@ -1,3 +1,24 @@ -// TODO -pub type Error = (); +use quick_error::quick_error; + pub type Result<T> = std::result::Result<T, Error>; + +quick_error! { + #[derive(Debug)] + pub enum Error { + IO(err: std::io::Error) { + from() + } + Parse(err: dhall_core::ParseError) { + from() + } + Decode(err: crate::binary::DecodeError) { + from() + } + Resolve(err: crate::imports::ImportError) { + from() + } + Typecheck(err: crate::typecheck::TypeError<dhall_core::X>) { + from() + } + } +} |