aboutsummaryrefslogtreecommitdiffstats
path: root/src/errors.rs
blob: f7f3d794e8474db1e6e80c97267b576407a4bfde (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
33
34
35
36
37
38
39
use chrono;
use magic_crypt;
use xdg;

error_chain! {
    foreign_links {
        Io(::std::io::Error);

        Xdg(xdg::BaseDirectoriesError);

        DateCrypt(DateCryptError);
        Duration(DurationError);
    }
}

quick_error! {
    #[derive(Debug, PartialEq)]
    pub enum DurationError {
        NegativeDuration(duration: i32) {
            description("negative duration")
            display("negative duration: '{}'", duration)
        }
    }
}

quick_error! {
    #[derive(Debug)]
    pub enum DateCryptError {
        DateParse(err: chrono::format::ParseError) {
            from()
            cause(err)
            display("unable to parse timestamp")
        }
        Decrypt(err: magic_crypt::Error) {
            from()
            display("unable to read trial key")
        }
    }
}