sim: simflash: Convert to thiserror
The thiserror crate seems to be getting more momentum in the community
than failure. Switch to this for deriving our own error type.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/simflash/src/lib.rs b/sim/simflash/src/lib.rs
index 734b3c1..fa83c3e 100644
--- a/sim/simflash/src/lib.rs
+++ b/sim/simflash/src/lib.rs
@@ -11,7 +11,6 @@
mod pdump;
use crate::pdump::HexDump;
-use failure::Fail;
use log::info;
use rand::{
self,
@@ -26,25 +25,20 @@
path::Path,
slice,
};
+use thiserror::Error;
pub type Result<T> = std::result::Result<T, FlashError>;
-#[derive(Fail, Debug)]
+#[derive(Error, Debug)]
pub enum FlashError {
- #[fail(display = "Offset out of bounds: {}", _0)]
+ #[error("Offset out of bounds: {0}")]
OutOfBounds(String),
- #[fail(display = "Invalid write: {}", _0)]
+ #[error("Invalid write: {0}")]
Write(String),
- #[fail(display = "Write failed by chance: {}", _0)]
+ #[error("Write failed by chance: {0}")]
SimulatedFail(String),
- #[fail(display = "{}", _0)]
- Io(#[cause] io::Error),
-}
-
-impl From<io::Error> for FlashError {
- fn from(error: io::Error) -> Self {
- FlashError::Io(error)
- }
+ #[error("{0}")]
+ Io(#[from] io::Error),
}
// Transition from error-chain.