#[repr(u8)]pub enum ErrorCode {
Show 21 variants
Unknown = 0,
AccessDenied = 1,
NotSupported = 2,
InvalidArgument = 3,
OutOfMemory = 4,
Timeout = 5,
ConcurrencyConflict = 6,
NotInProgress = 7,
WouldBlock = 8,
InvalidState = 9,
NewSocketLimit = 10,
AddressNotBindable = 11,
AddressInUse = 12,
RemoteUnreachable = 13,
ConnectionRefused = 14,
ConnectionReset = 15,
ConnectionAborted = 16,
DatagramTooLarge = 17,
NameUnresolvable = 18,
TemporaryResolverFailure = 19,
PermanentResolverFailure = 20,
}
Expand description
Error codes.
In theory, every API can return any error code. In practice, API’s typically only return the errors documented per API combined with a couple of errors that are always possible:
unknown
access-denied
not-supported
out-of-memory
concurrency-conflict
See each individual API for what the POSIX equivalents are. They sometimes differ per API.
Variants§
Unknown = 0
Unknown error
AccessDenied = 1
Access denied.
POSIX equivalent: EACCES, EPERM
NotSupported = 2
The operation is not supported.
POSIX equivalent: EOPNOTSUPP
InvalidArgument = 3
One of the arguments is invalid.
POSIX equivalent: EINVAL
OutOfMemory = 4
Not enough memory to complete the operation.
POSIX equivalent: ENOMEM, ENOBUFS, EAI_MEMORY
Timeout = 5
The operation timed out before it could finish completely.
ConcurrencyConflict = 6
This operation is incompatible with another asynchronous operation that is already in progress.
POSIX equivalent: EALREADY
NotInProgress = 7
Trying to finish an asynchronous operation that:
- has not been started yet, or:
- was already finished by a previous
finish-*
call.
Note: this is scheduled to be removed when future
s are natively supported.
WouldBlock = 8
The operation has been aborted because it could not be completed immediately.
Note: this is scheduled to be removed when future
s are natively supported.
InvalidState = 9
The operation is not valid in the socket’s current state.
NewSocketLimit = 10
A new socket resource could not be created because of a system limit.
AddressNotBindable = 11
A bind operation failed because the provided address is not an address that the network
can bind to.
AddressInUse = 12
A bind operation failed because the provided address is already in use or because there are no ephemeral ports available.
RemoteUnreachable = 13
The remote address is not reachable
ConnectionRefused = 14
The TCP connection was forcefully rejected
ConnectionReset = 15
The TCP connection was reset.
ConnectionAborted = 16
A TCP connection was aborted.
DatagramTooLarge = 17
The size of a datagram sent to a UDP socket exceeded the maximum supported size.
NameUnresolvable = 18
Name does not exist or has no suitable associated IP addresses.
TemporaryResolverFailure = 19
A temporary failure in name resolution occurred.
PermanentResolverFailure = 20
A permanent failure in name resolution occurred.
Implementations§
Trait Implementations§
source§impl Error for ErrorCode
impl Error for ErrorCode
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
impl ComponentType for ErrorCode
impl Copy for ErrorCode
impl Eq for ErrorCode
impl Lift for ErrorCode
impl Lower for ErrorCode
impl StructuralPartialEq for ErrorCode
Auto Trait Implementations§
impl Freeze for ErrorCode
impl RefUnwindSafe for ErrorCode
impl Send for ErrorCode
impl Sync for ErrorCode
impl Unpin for ErrorCode
impl UnwindSafe for ErrorCode
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self
file descriptor.source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: AsFilelike,
self
file descriptor. Read moresource§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoAnyhow for T
impl<T> IntoAnyhow for T
source§fn into_anyhow(self) -> Error
fn into_anyhow(self) -> Error
self
into an anyhow::Error
.source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more