escw_mcu_stm32/hal/
mod.rs1pub 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}