1use embedded_io::{Error, ErrorKind};
2
3use crate::errno::Errno;
4
5pub type Result<T> = core::result::Result<T, Errno>;
6
7impl From<Errno> for ErrorKind {
8 fn from(value: Errno) -> Self {
9 match value {
10 Errno::Noent => ErrorKind::NotFound,
11 Errno::Acces | Errno::Perm => ErrorKind::PermissionDenied,
12 Errno::Connrefused => ErrorKind::ConnectionRefused,
13 Errno::Connreset => ErrorKind::ConnectionReset,
14 Errno::Connaborted => ErrorKind::ConnectionAborted,
15 Errno::Notconn => ErrorKind::NotConnected,
16 Errno::Addrinuse => ErrorKind::AddrInUse,
17 Errno::Addrnotavail => ErrorKind::AddrNotAvailable,
18 Errno::Pipe => ErrorKind::BrokenPipe,
19 Errno::Exist => ErrorKind::AlreadyExists,
20 Errno::Inval => ErrorKind::InvalidInput,
21 Errno::Timedout => ErrorKind::TimedOut,
22 Errno::Intr => ErrorKind::Interrupted,
23 Errno::Opnotsupp => ErrorKind::Unsupported,
24 Errno::Nomem => ErrorKind::OutOfMemory,
25 _ => ErrorKind::Other,
26 }
27 }
28}
29
30impl Error for Errno {
31 fn kind(&self) -> ErrorKind {
32 (*self).into()
33 }
34}