power_manager/
error.rs

1// SPDX-FileCopyrightText: 2024 Foundation Devices, Inc. <hello@foundation.xyz>
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#[derive(Debug, thiserror::Error)]
5pub enum PowerManagerError {
6    #[error("OS error: {0:?}")]
7    XousError(xous::Error),
8
9    #[cfg(keyos)]
10    #[error("I2C error: {0:?}")]
11    I2cError(i2c::I2cError),
12
13    #[error("Unknown internal error")]
14    UnknownError,
15}
16
17impl From<xous::Error> for PowerManagerError {
18    fn from(value: xous::Error) -> Self { PowerManagerError::XousError(value) }
19}
20
21#[cfg(keyos)]
22impl From<i2c::I2cError> for PowerManagerError {
23    fn from(value: i2c::I2cError) -> Self { PowerManagerError::I2cError(value) }
24}
25
26impl From<()> for PowerManagerError {
27    fn from(_: ()) -> Self { PowerManagerError::UnknownError }
28}