1 //! Implementation of `embedded-io::Error' trait for `Error`. 2 3 use crate::{device::socket::SocketError, Error}; 4 use embedded_io::ErrorKind; 5 6 impl embedded_io::Error for Error { kind(&self) -> ErrorKind7 fn kind(&self) -> ErrorKind { 8 match self { 9 Error::InvalidParam => ErrorKind::InvalidInput, 10 Error::DmaError => ErrorKind::OutOfMemory, 11 Error::Unsupported => ErrorKind::Unsupported, 12 Error::SocketDeviceError(e) => match e { 13 &SocketError::ConnectionExists => ErrorKind::AddrInUse, 14 SocketError::NotConnected => ErrorKind::NotConnected, 15 SocketError::PeerSocketShutdown => ErrorKind::ConnectionAborted, 16 SocketError::BufferTooShort => ErrorKind::InvalidInput, 17 SocketError::OutputBufferTooShort(_) => ErrorKind::InvalidInput, 18 SocketError::BufferTooLong(_, _) => ErrorKind::InvalidInput, 19 SocketError::InsufficientBufferSpaceInPeer => ErrorKind::WriteZero, 20 SocketError::UnknownOperation(_) 21 | SocketError::InvalidOperation 22 | SocketError::InvalidNumber 23 | SocketError::UnexpectedDataInPacket 24 | SocketError::RecycledWrongBuffer => ErrorKind::Other, 25 }, 26 Error::QueueFull 27 | Error::NotReady 28 | Error::WrongToken 29 | Error::AlreadyUsed 30 | Error::IoError 31 | Error::ConfigSpaceTooSmall 32 | Error::ConfigSpaceMissing => ErrorKind::Other, 33 } 34 } 35 } 36