// Copyright 2015, 2016 Ethcore (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . use std::fmt; use std::io::Error as IoError; use ethkey::Error as EthKeyError; #[derive(Debug)] pub enum Error { Io(IoError), InvalidPassword, InvalidSecret, InvalidAccount, CreationFailed, EthKey(EthKeyError), Custom(String), } impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { let s = match *self { Error::Io(ref err) => format!("{}", err), Error::InvalidPassword => "Invalid password".into(), Error::InvalidSecret => "Invalid secret".into(), Error::InvalidAccount => "Invalid account".into(), Error::CreationFailed => "Account creation failed".into(), Error::EthKey(ref err) => format!("{}", err), Error::Custom(ref s) => s.clone(), }; write!(f, "{}", s) } } impl From for Error { fn from(err: IoError) -> Self { Error::Io(err) } } impl From for Error { fn from(err: EthKeyError) -> Self { Error::EthKey(err) } }