summaryrefslogtreecommitdiff
path: root/dhall/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dhall/src/error.rs')
-rw-r--r--dhall/src/error.rs25
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()
+ }
+ }
+}