1use failure::Fail;
2use hex::FromHexError;
3use protobuf::error::ProtobufError;
4use std::num::ParseIntError;
5
6#[derive(Debug, Fail)]
8pub enum ToolError {
9 #[fail(display = "Std's io error: {}", _0)]
11 Stdio(::std::io::Error),
12 #[fail(display = "Serde_json error: {}", _0)]
14 SerdeJson(serde_json::error::Error),
15 #[fail(display = "Hyper error: {}", _0)]
17 Hyper(hyper::Error),
18 #[fail(display = "Hyper legacy error: {}", _0)]
20 HyperLegacy(hyper_util::client::legacy::Error),
21 #[fail(display = "ABI error: {}", _0)]
23 Abi(String),
24 #[fail(display = "Protobuf error: {}", _0)]
26 Proto(ProtobufError),
27 #[fail(display = "Hex decode error: {}", _0)]
29 Decode(FromHexError),
30 #[fail(display = "Parse int error: {}", _0)]
32 Parse(ParseIntError),
33 #[fail(display = "Customize error: {}", _0)]
35 Customize(String),
36}