Skip to main content

ConnectionFailureKind

Enum ConnectionFailureKind 

Source
pub enum ConnectionFailureKind {
    Timeout,
    Refused,
    Auth,
    Dns,
    Transport,
    Unknown,
}
Expand description

Classifies the type of failure that occurred during a connection attempt.

This enum categorizes connection failures into distinct types, allowing for more targeted error handling, retry logic, and diagnostic reporting. Each variant represents a different category of connection failure that may require different handling strategies.

§Variants

  • Timeout - The connection attempt exceeded the configured timeout period. This typically indicates network latency issues, an unresponsive host, or firewall rules blocking the connection.

  • Refused - The connection was actively refused by the remote host. This usually means the host is reachable but the service is not running or is not accepting connections on the specified port.

  • Auth - Authentication failed during the connection attempt. This indicates that the credentials provided were invalid, expired, or insufficient for establishing the connection.

  • Dns - DNS resolution failed for the hostname. This means the hostname could not be resolved to an IP address, possibly due to DNS server issues or an invalid hostname.

  • Transport - A transport-layer error occurred during the connection attempt. This includes network unreachable errors, connection reset by peer, and other low-level network failures.

  • Unknown - The failure type could not be determined or does not fit into any of the other categories. This is used as a fallback for unexpected or unclassified errors.

§Examples

// Create different failure kinds
let timeout = ConnectionFailureKind::Timeout;
let auth = ConnectionFailureKind::Auth;
let dns = ConnectionFailureKind::Dns;

// Use in connection status
let failed_status = ConnectionStatus::Failed(ConnectionFailureKind::Timeout);
assert!(matches!(failed_status, ConnectionStatus::Failed(_)));

Variants§

§

Timeout

§

Refused

§

Auth

§

Dns

§

Transport

§

Unknown

Trait Implementations§

Source§

impl Clone for ConnectionFailureKind

Source§

fn clone(&self) -> ConnectionFailureKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ConnectionFailureKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for ConnectionFailureKind

Source§

impl PartialEq for ConnectionFailureKind

Source§

fn eq(&self, other: &ConnectionFailureKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ConnectionFailureKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.