opentitanlib/chip/rom_error.rs
1// Copyright lowRISC contributors (OpenTitan project).
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4
5use crate::with_unknown;
6use std::error::Error;
7
8include!(env!("rom_error_enum"));
9
10impl Error for RomError {}
11
12impl From<RomError> for Result<(), RomError> {
13 fn from(error: RomError) -> Self {
14 if error == RomError::Ok {
15 Ok(())
16 } else {
17 Err(error)
18 }
19 }
20}
21
22impl From<RomError> for Result<(), anyhow::Error> {
23 fn from(error: RomError) -> Self {
24 if error == RomError::Ok {
25 Ok(())
26 } else {
27 Err(error.into())
28 }
29 }
30}