diff options
author | Evan Benn <evanbenn@chromium.org> | 2022-06-17 14:11:18 +1000 |
---|---|---|
committer | Edward O'Callaghan <quasisec@chromium.org> | 2022-07-21 23:29:08 +0000 |
commit | c42ae261ae299ea932403a6081fdfc8aa606e8fb (patch) | |
tree | 7466baf892390341a4c3893e568de6ddb4ce1117 /util/flashrom_tester/flashrom/src/lib.rs | |
parent | 4342cc0f14e2945d7642e75e44346c13ca23089b (diff) | |
download | flashrom-c42ae261ae299ea932403a6081fdfc8aa606e8fb.tar.gz flashrom-c42ae261ae299ea932403a6081fdfc8aa606e8fb.tar.bz2 flashrom-c42ae261ae299ea932403a6081fdfc8aa606e8fb.zip |
flashrom_tester: Refactor Error type
Use a type implementing Error instead of a string for errors. Error
implements Display so can be easily converted to a String. This will
allow libflashrom to be more easily integrated.
BUG=b:230545739
BRANCH=None
TEST=cargo test
Change-Id: Id166053c7edfd07576e7823692cfa0ea4d438948
Signed-off-by: Evan Benn <evanbenn@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/65277
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Diffstat (limited to 'util/flashrom_tester/flashrom/src/lib.rs')
-rw-r--r-- | util/flashrom_tester/flashrom/src/lib.rs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/util/flashrom_tester/flashrom/src/lib.rs b/util/flashrom_tester/flashrom/src/lib.rs index fff5863bc..e01acbb9b 100644 --- a/util/flashrom_tester/flashrom/src/lib.rs +++ b/util/flashrom_tester/flashrom/src/lib.rs @@ -38,6 +38,8 @@ extern crate log; mod cmd; +use std::{error, fmt}; + pub use cmd::{dut_ctrl_toggle_wp, FlashromCmd}; #[derive(Copy, Clone, PartialEq, Debug)] @@ -81,7 +83,27 @@ impl FlashChip { } } -pub type FlashromError = String; +#[derive(Debug, PartialEq)] +pub struct FlashromError { + msg: String, +} + +impl fmt::Display for FlashromError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{}", self.msg) + } +} + +impl error::Error for FlashromError {} + +impl<T> From<T> for FlashromError +where + T: Into<String>, +{ + fn from(msg: T) -> Self { + FlashromError { msg: msg.into() } + } +} pub struct ROMWriteSpecifics<'a> { pub layout_file: Option<&'a str>, |