| //! Implementation of `embedded-io::Error' trait for `Error`. |
| |
| use crate::{device::socket::SocketError, Error}; |
| use embedded_io::ErrorKind; |
| |
| impl embedded_io::Error for Error { |
| fn kind(&self) -> ErrorKind { |
| match self { |
| Error::InvalidParam => ErrorKind::InvalidInput, |
| Error::DmaError => ErrorKind::OutOfMemory, |
| Error::Unsupported => ErrorKind::Unsupported, |
| Error::SocketDeviceError(e) => match e { |
| &SocketError::ConnectionExists => ErrorKind::AddrInUse, |
| SocketError::NotConnected => ErrorKind::NotConnected, |
| SocketError::PeerSocketShutdown => ErrorKind::ConnectionAborted, |
| SocketError::BufferTooShort => ErrorKind::InvalidInput, |
| SocketError::OutputBufferTooShort(_) => ErrorKind::InvalidInput, |
| SocketError::BufferTooLong(_, _) => ErrorKind::InvalidInput, |
| SocketError::InsufficientBufferSpaceInPeer => ErrorKind::WriteZero, |
| SocketError::UnknownOperation(_) |
| | SocketError::InvalidOperation |
| | SocketError::InvalidNumber |
| | SocketError::UnexpectedDataInPacket |
| | SocketError::RecycledWrongBuffer => ErrorKind::Other, |
| }, |
| Error::QueueFull |
| | Error::NotReady |
| | Error::WrongToken |
| | Error::AlreadyUsed |
| | Error::IoError |
| | Error::ConfigSpaceTooSmall |
| | Error::ConfigSpaceMissing => ErrorKind::Other, |
| } |
| } |
| } |