Skip to main content

ConnectionError

Struct ConnectionError 

pub struct ConnectionError { /* private fields */ }
Available on crate feature net only.
Expand description

A classified error produced while establishing or using a client connection.

Classification can inform endpoint availability; it does not grant permission to replay an application operation that might already have been processed.

The original error remains available as the source. Adding context only wraps that source and therefore preserves the classification.

Implementations§

§

impl ConnectionError

pub fn new( source: impl Into<Box<dyn Error + Sync + Send>>, domain: ConnectionErrorDomain, kind: ConnectionErrorKind, ) -> ConnectionError

Create a classified connection error.

pub fn transport( source: impl Into<Box<dyn Error + Sync + Send>>, kind: ConnectionErrorKind, ) -> ConnectionError

Create an error which occurred while establishing the transport path.

pub fn application( source: impl Into<Box<dyn Error + Sync + Send>>, kind: ConnectionErrorKind, ) -> ConnectionError

Create an error which occurred while establishing the end-to-end connection.

This includes intermediate end-to-end protocols such as TLS to the origin, not only the final application protocol.

pub fn local( source: impl Into<Box<dyn Error + Sync + Send>>, kind: ConnectionErrorKind, ) -> ConnectionError

Create an error produced by client-local acquisition or orchestration machinery.

pub fn unknown( source: impl Into<Box<dyn Error + Sync + Send>>, ) -> ConnectionError

Create an unclassified connection error.

pub fn domain(&self) -> ConnectionErrorDomain

Return the architectural domain in which the failure occurred.

pub fn kind(&self) -> ConnectionErrorKind

Return the protocol-independent kind of failure.

pub fn policy_scope(&self) -> ConnectionPolicyScope

Policy under which this failure was observed. Negative caches must not apply request-specific failures to other requests.

pub fn with_policy_scope(self, scope: ConnectionPolicyScope) -> ConnectionError

Identify the policy that produced this failure without changing its domain or kind. Request-specific failures are neutral for shared endpoint availability and must not clear or increase shared backoff.

pub fn set_policy_scope( &mut self, scope: ConnectionPolicyScope, ) -> &mut ConnectionError

Identify the policy that produced this failure without changing its domain or kind. Request-specific failures are neutral for shared endpoint availability and must not clear or increase shared backoff.

pub fn get_ref(&self) -> &(dyn Error + Sync + Send + 'static)

Return the original error, including any attached context.

pub fn into_source(self) -> Box<dyn Error + Sync + Send>

Consume this error and return its boxed source.

pub fn into_box_error(self) -> Box<dyn Error + Sync + Send>

Convert this error into a BoxError without losing its classification.

pub fn into_opaque_error(self) -> OpaqueError

Convert this error into an OpaqueError without losing its classification.

pub fn context<M>(self, value: M) -> ConnectionError
where M: Debug + Display + Send + Sync + 'static,

Add context to the source error.

pub fn context_hex<M>(self, value: M) -> ConnectionError
where M: Debug + Send + Sync + 'static,

Add context using fmt::LowerHex for its formatting.

pub fn context_debug<M>(self, value: M) -> ConnectionError
where M: Debug + Send + Sync + 'static,

Add context using fmt::Debug for its display formatting.

pub fn context_field<M>(self, key: &'static str, value: M) -> ConnectionError
where M: Debug + Display + Send + Sync + 'static,

Add keyed context to the source error.

pub fn context_str_field<M>( self, key: &'static str, value: M, ) -> ConnectionError
where M: Into<String>,

Add a keyed string-like context value to the source error.

pub fn context_hex_field<M>( self, key: &'static str, value: M, ) -> ConnectionError
where M: Debug + Send + Sync + 'static,

Add keyed context using fmt::LowerHex for its formatting.

pub fn context_debug_field<M>( self, key: &'static str, value: M, ) -> ConnectionError
where M: Debug + Send + Sync + 'static,

Add keyed context using fmt::Debug for its display formatting.

pub fn with_context<C, F>(self, create: F) -> ConnectionError
where C: Debug + Display + Send + Sync + 'static, F: FnOnce() -> C,

Lazily add context to the source error.

pub fn with_context_hex<C, F>(self, create: F) -> ConnectionError
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily add context using fmt::LowerHex for its formatting.

pub fn with_context_debug<C, F>(self, create: F) -> ConnectionError
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily add context using fmt::Debug for its display formatting.

pub fn with_context_field<C, F>( self, key: &'static str, create: F, ) -> ConnectionError
where C: Debug + Display + Send + Sync + 'static, F: FnOnce() -> C,

Lazily add keyed context to the source error.

pub fn with_context_str_field<C, F>( self, key: &'static str, create: F, ) -> ConnectionError
where C: Into<String>, F: FnOnce() -> C,

Lazily add a keyed string-like context value to the source error.

pub fn with_context_hex_field<C, F>( self, key: &'static str, create: F, ) -> ConnectionError
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily add keyed context using fmt::LowerHex for its formatting.

pub fn with_context_debug_field<C, F>( self, key: &'static str, create: F, ) -> ConnectionError
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily add keyed context using fmt::Debug for its display formatting.

pub fn backtrace(self) -> ConnectionError

Capture a backtrace and attach it to the source error.

Trait Implementations§

§

impl Debug for ConnectionError

§

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

Formats the value using the given formatter. Read more
§

impl Display for ConnectionError

§

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

Formats the value using the given formatter. Read more
§

impl Error for ConnectionError

§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
§

impl From<!> for ConnectionError

§

fn from(error: !) -> ConnectionError

Converts to this type from the input type.
§

impl From<Box<dyn Error + Sync + Send>> for ConnectionError

§

fn from(source: Box<dyn Error + Sync + Send>) -> ConnectionError

Converts to this type from the input type.
§

impl From<HttpProxyError> for ConnectionError

§

fn from(error: HttpProxyError) -> ConnectionError

Converts to this type from the input type.
§

impl From<Socks5ProxyError> for ConnectionError

§

fn from(error: Socks5ProxyError) -> ConnectionError

Converts to this type from the input type.

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
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<Error> ErrorExt for Error
where Error: Into<Box<dyn Error + Sync + Send>>,

§

fn into_box_error(self) -> Box<dyn Error + Sync + Send>

Return self as BoxError without additional context.
§

fn into_opaque_error(self) -> OpaqueError

Return self as OpaqueError without additional context. Read more
§

fn context<M>(self, value: M) -> Box<dyn Error + Sync + Send>
where M: Debug + Display + Send + Sync + 'static,

Wrap the error in a context.
§

fn context_hex<M>(self, value: M) -> Box<dyn Error + Sync + Send>
where M: Debug + Send + Sync + 'static,

Wrap the error in a context, using fmt::LowerHex as fmt::Debug and fmt::Display.
§

fn context_debug<M>(self, value: M) -> Box<dyn Error + Sync + Send>
where M: Debug + Send + Sync + 'static,

Wrap the error in a context, using fmt::Debug as fmt::Display.
§

fn context_field<M>( self, key: &'static str, value: M, ) -> Box<dyn Error + Sync + Send>
where M: Debug + Display + Send + Sync + 'static,

Wrap the error in a keyed context.
§

fn context_str_field<M>( self, key: &'static str, value: M, ) -> Box<dyn Error + Sync + Send>
where M: Into<String>,

Same as Self::context_field but using a string-like value, this is useful in case you need to pass a string slice which is borrowed and thus cannot be passed as part of ’static error.
§

fn context_hex_field<M>( self, key: &'static str, value: M, ) -> Box<dyn Error + Sync + Send>
where M: Debug + Send + Sync + 'static,

Wrap the error in a keyed context, using fmt::LowerHex as fmt::Debug and fmt::Display.
§

fn context_debug_field<M>( self, key: &'static str, value: M, ) -> Box<dyn Error + Sync + Send>
where M: Debug + Send + Sync + 'static,

Wrap the error in a keyed context, using fmt::Debug as fmt::Display.
§

fn with_context<C, F>(self, cb: F) -> Box<dyn Error + Sync + Send>
where C: Debug + Display + Send + Sync + 'static, F: FnOnce() -> C,

Lazily wrap the error with a context.
§

fn with_context_hex<C, F>(self, cb: F) -> Box<dyn Error + Sync + Send>
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily wrap the error with a context, using fmt::LowerHex as fmt::Debug and fmt::Display.
§

fn with_context_debug<C, F>(self, cb: F) -> Box<dyn Error + Sync + Send>
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily wrap the error with a context, using fmt::Debug as fmt::Display.
§

fn with_context_field<C, F>( self, key: &'static str, cb: F, ) -> Box<dyn Error + Sync + Send>
where C: Debug + Display + Send + Sync + 'static, F: FnOnce() -> C,

Lazily wrap the error with keyed context.
§

fn with_context_str_field<C, F>( self, key: &'static str, cb: F, ) -> Box<dyn Error + Sync + Send>
where C: Into<String>, F: FnOnce() -> C,

Same as Self::with_context_field but using a string-like value, this is useful in case you need to pass a string slice which is borrowed and thus cannot be passed as part of ’static error.
§

fn with_context_hex_field<C, F>( self, key: &'static str, cb: F, ) -> Box<dyn Error + Sync + Send>
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily wrap the error with keyed context using fmt::LowerHex as fmt::Debug and fmt::Display.
§

fn with_context_debug_field<C, F>( self, key: &'static str, cb: F, ) -> Box<dyn Error + Sync + Send>
where C: Debug + Send + Sync + 'static, F: FnOnce() -> C,

Lazily wrap the error with keyed context using fmt::Debug as fmt::Display.
§

fn backtrace(self) -> Box<dyn Error + Sync + Send>

Available on crate feature std only.
Add a Backtrace to the error.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self> ⓘ

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a rama_grpc::Request
§

impl<L> LayerExt<L> for L

§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
§

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

§

fn rama_from(value: T) -> U

§

impl<T, U, CrateMarker> RamaInto<U, CrateMarker> for T
where U: RamaFrom<T, CrateMarker>,

§

fn rama_into(self) -> U

§

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

§

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

§

fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>

§

impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for T
where U: RamaTryFrom<T, CrateMarker>,

§

type Error = <U as RamaTryFrom<T, CrateMarker>>::Error

§

fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> ToSmolStr for T
where T: Display + ?Sized,

§

fn to_smolstr(&self) -> SmolStr

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToStringFallible for T
where T: Display,

§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<V, F> ValueFormatter<&V> for F
where F: ValueFormatter<V> + ?Sized, V: ?Sized,

§

const SHAPE: FieldShape<'static>

Available on non-metrique_require_explicit_impls only.
The shape of values produced by this formatter. Read more
§

fn format_value(writer: impl ValueWriter, value: &&V)

Write value to writer
§

impl<V, F> ValueFormatter<Arc<V>> for F
where F: ValueFormatter<V> + ?Sized, V: ?Sized,

§

const SHAPE: FieldShape<'static>

Available on non-metrique_require_explicit_impls only.
The shape of values produced by this formatter. Read more
§

fn format_value(writer: impl ValueWriter, value: &Arc<V>)

Write value to writer
§

impl<V, F> ValueFormatter<Box<V>> for F
where F: ValueFormatter<V> + ?Sized, V: ?Sized,

§

const SHAPE: FieldShape<'static>

Available on non-metrique_require_explicit_impls only.
The shape of values produced by this formatter. Read more
§

fn format_value(writer: impl ValueWriter, value: &Box<V>)

Write value to writer
§

impl<V, F> ValueFormatter<Cow<'_, V>> for F
where V: ToOwned + ?Sized, F: ValueFormatter<V> + ?Sized,

§

const SHAPE: FieldShape<'static>

Available on non-metrique_require_explicit_impls only.
The shape of values produced by this formatter. Read more
§

fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)

Write value to writer
§

impl<V, F> ValueFormatter<Option<V>> for F
where F: ValueFormatter<V> + ?Sized,

§

const SHAPE: FieldShape<'static>

Available on non-metrique_require_explicit_impls only.
The shape of values produced by this formatter. Read more
§

fn format_value(writer: impl ValueWriter, value: &Option<V>)

Write value to writer
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more