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}