escw_mcu_stm32/hal/
mod.rs

1pub mod io;
2pub mod uart;
3
4use escw_mcu::common::{Error, Result};
5
6#[repr(C)]
7#[derive(Debug)]
8pub enum HalStatus {
9    Ok = 0,
10    Error = 1,
11    Busy = 2,
12    Timeout = 3,
13    Unknown = 4,
14}
15
16impl From<u32> for HalStatus {
17    fn from(value: u32) -> HalStatus {
18        match value {
19            0 => HalStatus::Ok,
20            1 => HalStatus::Error,
21            2 => HalStatus::Busy,
22            3 => HalStatus::Timeout,
23            _ => HalStatus::Unknown,
24        }
25    }
26}
27
28impl Into<Result<()>> for HalStatus {
29    fn into(self) -> Result<()> {
30        match self {
31            Self::Ok => Ok(()),
32            Self::Error => Err(Error::Param),
33            Self::Busy => Err(Error::PeripheralBusy),
34            Self::Timeout => Err(Error::WaitTimeout),
35            Self::Unknown => Err(Error::Unknown),
36        }
37    }
38}
39
40impl Into<Error> for HalStatus {
41    fn into(self) -> Error {
42        match self {
43            Self::Ok => Error::Param,
44            Self::Error => Error::Param,
45            Self::Busy => Error::PeripheralBusy,
46            Self::Timeout => Error::WaitTimeout,
47            Self::Unknown => Error::Unknown,
48        }
49    }
50}