Enum mycelium_util::io::ErrorKind
source · #[non_exhaustive]pub enum ErrorKind {
Show 18 variants
NotFound,
PermissionDenied,
ConnectionRefused,
ConnectionReset,
ConnectionAborted,
NotConnected,
AddrInUse,
AddrNotAvailable,
BrokenPipe,
AlreadyExists,
WouldBlock,
InvalidInput,
InvalidData,
TimedOut,
WriteZero,
Interrupted,
Other,
UnexpectedEof,
}
Expand description
A list specifying general categories of I/O error.
This list is intended to grow over time and it is not recommended to exhaustively match against it.
It is used with the io::Error
type.
§Handling errors and matching on ErrorKind
In application code, use match
for the ErrorKind
values you are
expecting; use _
to match “all other errors”.
In comprehensive and thorough tests that want to verify that a test doesn’t
return any known incorrect error kind, you may want to cut-and-paste the
current full list of errors from here into your test code, and then match
_
as the correct case. This seems counterintuitive, but it will make your
tests more robust. In particular, if you want to verify that your code does
produce an unrecognized error kind, the robust solution is to check for all
the recognized error kinds and fail in those cases.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
NotFound
An entity was not found, often a file.
PermissionDenied
The operation lacked the necessary privileges to complete.
ConnectionRefused
The connection was refused by the remote server.
ConnectionReset
The connection was reset by the remote server.
ConnectionAborted
The connection was aborted (terminated) by the remote server.
NotConnected
The network operation failed because it was not connected yet.
AddrInUse
A socket address could not be bound because the address is already in use elsewhere.
AddrNotAvailable
A nonexistent interface was requested or the requested address was not local.
BrokenPipe
The operation failed because a pipe was closed.
AlreadyExists
An entity already exists, often a file.
WouldBlock
The operation needs to block to complete, but the blocking operation was requested to not occur.
InvalidInput
A parameter was incorrect.
InvalidData
Data not valid for the operation were encountered.
Unlike InvalidInput
, this typically means that the operation
parameters were valid, however the error was caused by malformed
input data.
For example, a function that reads a file into a string will error with
InvalidData
if the file’s contents are not valid UTF-8.
TimedOut
The I/O operation’s timeout expired, causing it to be canceled.
WriteZero
An error returned when an operation could not be completed because a
call to write
returned Ok(0)
.
This typically means that an operation could only succeed if it wrote a particular number of bytes but only a smaller number of bytes could be written.
Interrupted
This operation was interrupted.
Interrupted operations can typically be retried.
Other
Any I/O error not part of this list.
UnexpectedEof
An error returned when an operation could not be completed because an “end of file” was reached prematurely.
This typically means that an operation could only succeed if it read a particular number of bytes but only a smaller number of bytes could be read.
Trait Implementations§
source§impl Ord for ErrorKind
impl Ord for ErrorKind
source§impl PartialOrd for ErrorKind
impl PartialOrd for ErrorKind
impl Copy for ErrorKind
impl Eq for ErrorKind
impl StructuralPartialEq for ErrorKind
Auto Trait Implementations§
impl Freeze for ErrorKind
impl RefUnwindSafe for ErrorKind
impl Send for ErrorKind
impl Sync for ErrorKind
impl Unpin for ErrorKind
impl UnwindSafe for ErrorKind
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)