summaryrefslogtreecommitdiff
path: root/dhall/src/error.rs
blob: cfd6f09b5c188955b55b9204b9514cb7c4c3dc6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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()
            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<dhall_core::X>) {
            from()
            display("{:?}", err)
        }
        Deserialize(err: String) {
            display("{}", err)
        }
    }
}