From 730d99adf2d4a7f222a71d687ea942545a7038fd Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 10 Apr 2019 19:55:50 +0200 Subject: Add error submodule --- dhall/src/error.rs | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 dhall/src/error.rs (limited to 'dhall/src/error.rs') diff --git a/dhall/src/error.rs b/dhall/src/error.rs new file mode 100644 index 0000000..ef8dd34 --- /dev/null +++ b/dhall/src/error.rs @@ -0,0 +1,3 @@ +// TODO +pub type Error = (); +pub type Result = std::result::Result; -- cgit v1.2.3 From c7184b841279a55bdfb39bde429896d221aa666c Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 10 Apr 2019 21:46:25 +0200 Subject: Cleanup error handling Closes #41 --- dhall/src/error.rs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'dhall/src/error.rs') 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 = std::result::Result; + +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) { + from() + } + } +} -- cgit v1.2.3 From 7446472833c86fba612fffa436e93514f773f305 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Wed, 10 Apr 2019 23:43:14 +0200 Subject: Display error messages --- dhall/src/error.rs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'dhall/src/error.rs') diff --git a/dhall/src/error.rs b/dhall/src/error.rs index eba7ff5..9e64b7e 100644 --- a/dhall/src/error.rs +++ b/dhall/src/error.rs @@ -7,18 +7,23 @@ quick_error! { pub enum Error { IO(err: std::io::Error) { from() + display("{}", err) } Parse(err: dhall_core::ParseError) { from() + display("{}", err) } Decode(err: crate::binary::DecodeError) { from() + display("{:?}", err) } Resolve(err: crate::imports::ImportError) { from() + display("{}", err) } Typecheck(err: crate::typecheck::TypeError) { from() + display("{:?}", err) } } } -- cgit v1.2.3 From 82d62c4d7d423817a4fd9d6294d27d18d60bcd22 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Thu, 11 Apr 2019 13:11:52 +0200 Subject: Add basic deserialization support Closes #13 --- dhall/src/error.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'dhall/src/error.rs') diff --git a/dhall/src/error.rs b/dhall/src/error.rs index 9e64b7e..cfd6f09 100644 --- a/dhall/src/error.rs +++ b/dhall/src/error.rs @@ -25,5 +25,8 @@ quick_error! { from() display("{:?}", err) } + Deserialize(err: String) { + display("{}", err) + } } } -- cgit v1.2.3