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
error_chain! { foreign_links { IOError(::std::io::Error); InvalidUtf8(::std::string::FromUtf8Error); } errors { InvalidCase(v: i32) { description("invalid union case") display("invalid union case: '{}'", v) } InvalidEnum(v: i32) { description("invalid enum value") display("invalid enum value: '{}'", v) } InvalidLen(v: usize) { description("invalid array len") display("invalid array len: '{}'", v) } } } unsafe impl Sync for Error {} impl Error { pub fn invalidcase(v: i32) -> Error { ErrorKind::InvalidCase(v).into() } pub fn invalidenum(v: i32) -> Error { ErrorKind::InvalidEnum(v).into() } pub fn invalidlen(v: usize) -> Error { ErrorKind::InvalidLen(v).into() } }