Skip to main content

ClientError

Struct ClientError 

Source
pub struct ClientError(/* private fields */);
Expand description

Opaque client boundary error backed by one shared canonical error.

Client operations cross asynchronous callbacks and retry coordinators, so the canonical value is shared rather than copied or flattened into text.

Implementations§

Source§

impl ClientError

Source

pub fn from_error(error: Error) -> Self

Promotes an owned canonical error into the client boundary.

Source

pub const fn from_shared(error: SharedError) -> Self

Retains an already shared canonical error at the client boundary.

Source

pub fn descriptor(&self) -> &'static ErrorDescriptor

Returns the canonical error descriptor.

Source

pub fn is(&self, descriptor: &'static ErrorDescriptor) -> bool

Returns whether this error has the supplied canonical identity.

Source

pub fn broker_response_code(&self) -> Option<i32>

Returns the retained broker response code when this is a broker failure.

Source

pub fn broker_addr(&self) -> Option<&str>

Returns the bounded diagnostic broker address when present.

Source

pub const fn shared_error(&self) -> &SharedError

Borrows the shared canonical error.

Source

pub fn source_ref<T>(&self) -> Option<&T>
where T: StdError + 'static,

Finds a typed cause anywhere below the canonical client error.

Source

pub fn into_shared_error(self) -> SharedError

Returns the shared canonical error.

Source

pub fn into_error(self) -> Error

Returns an owned canonical error while preserving the complete typed source chain when the shared value has other owners.

Source

pub fn illegal_argument(message: impl Into<String>) -> Self

Creates an invalid-argument failure without retaining arbitrary text.

Source

pub fn illegal_argument_source( source: impl StdError + Send + Sync + 'static, ) -> Self

Creates an invalid-argument failure with a typed source.

Source

pub fn not_started() -> Self

Creates a client-not-started lifecycle failure.

Source

pub fn already_started() -> Self

Creates a client-already-started lifecycle failure.

Source

pub fn shutting_down() -> Self

Creates a client-shutting-down lifecycle failure.

Source

pub fn invalid_state(expected: impl AsRef<str>, actual: impl AsRef<str>) -> Self

Creates an invalid client-state failure.

Source

pub fn component_unavailable(role: impl AsRef<str>) -> Self

Creates an unavailable client-component failure.

Source

pub fn not_initialized(component: impl AsRef<str>) -> Self

Creates a component-not-initialized failure.

Source

pub fn config_missing(key: impl AsRef<str>) -> Self

Creates a configuration-missing failure.

Source

pub fn config_invalid( key: impl AsRef<str>, value: impl AsRef<str>, reason: impl AsRef<str>, ) -> Self

Creates an invalid-configuration failure.

Source

pub fn config_invalid_source( key: impl AsRef<str>, value_present: bool, source: impl StdError + Send + Sync + 'static, ) -> Self

Creates an invalid-configuration failure with a typed source.

Source

pub fn config_parse_failed( key: impl AsRef<str>, reason: impl AsRef<str>, ) -> Self

Creates a configuration-parse failure.

Source

pub fn config_parse_source( key: impl AsRef<str>, source: impl StdError + Send + Sync + 'static, ) -> Self

Creates a configuration-parse failure with a typed source.

Source

pub fn response_process_failed( operation: impl AsRef<str>, reason: impl AsRef<str>, ) -> Self

Creates a response-processing failure.

Source

pub fn response_process_source( operation: impl AsRef<str>, source: impl StdError + Send + Sync + 'static, ) -> Self

Creates a response-processing failure with a typed source.

Source

pub fn timeout(operation: impl AsRef<str>, timeout_ms: u64) -> Self

Creates an operation-timeout failure.

Source

pub fn internal( operation: impl AsRef<str>, source: impl StdError + Send + Sync + 'static, ) -> Self

Creates an internal failure while retaining its typed source.

Source

pub fn invariant_violated(invariant: impl AsRef<str>) -> Self

Creates an invariant failure.

Source

pub fn service_failed(operation: impl AsRef<str>) -> Self

Creates a service lifecycle failure.

Source

pub fn service_source( operation: impl AsRef<str>, source: impl StdError + Send + Sync + 'static, ) -> Self

Creates a service lifecycle failure with a typed source.

Source

pub fn invalid_property(property: impl AsRef<str>) -> Self

Creates an invalid-message-property failure.

Source

pub fn broker_not_found(broker: impl AsRef<str>) -> Self

Creates a broker-lookup failure.

Source

pub fn broker_operation_failed( operation: impl AsRef<str>, code: i32, message: impl AsRef<str>, ) -> Self

Creates a broker-operation failure.

Source

pub fn broker_operation_failed_at( operation: impl AsRef<str>, code: i32, message: impl AsRef<str>, broker_addr: Option<impl AsRef<str>>, ) -> Self

Creates a broker-operation failure with an optional broker address.

Source

pub fn broker_operation_source( operation: impl AsRef<str>, code: i32, broker_addr: Option<impl AsRef<str>>, source: impl StdError + Send + Sync + 'static, ) -> Self

Creates a broker-operation failure while retaining its typed source.

Source

pub fn with_broker_addr(self, broker_addr: impl AsRef<str>) -> Self

Adds a broker address to a newly created broker-operation failure.

Source

pub fn route_not_found(topic: impl AsRef<str>) -> Self

Creates a route-not-found failure.

Source

pub fn dns_failed() -> Self

Creates a DNS-resolution failure without exposing endpoint details.

Source

pub fn dns_failed_source(source: impl StdError + Send + Sync + 'static) -> Self

Creates a DNS-resolution failure while retaining its typed source.

Methods from Deref<Target = Error>§

Source

pub fn descriptor(&self) -> &'static ErrorDescriptor

Returns the catalog descriptor that owns identity and policy.

Source

pub fn code(&self) -> ErrorCode

Returns the stable catalog code.

Source

pub fn class(&self) -> ErrorClass

Returns the broad catalog-owned class.

Source

pub fn condition(&self) -> CanonicalCondition

Returns the protocol-independent canonical condition.

Source

pub fn fault(&self) -> FaultAttribution

Returns the catalog-owned fault attribution.

Source

pub fn component(&self) -> ComponentId

Returns the catalog component that owns this identity.

Source

pub fn severity(&self) -> ErrorSeverity

Returns the catalog-owned severity.

Source

pub fn recovery_hint(&self) -> RecoveryHint

Returns the catalog-owned recovery hint.

Source

pub fn exposure(&self) -> Exposure

Returns the public-context exposure policy.

Source

pub fn backtrace_policy(&self) -> BacktracePolicy

Returns the catalog-controlled backtrace policy.

Source

pub fn projection(&self) -> ProjectionSpec

Returns descriptor-owned boundary projections.

Source

pub fn context(&self) -> &ErrorContext

Returns the typed context retained by this error.

Source

pub fn public_view(&self) -> Result<PublicErrorView<'_>, ViewContextViolation>

Creates a descriptor-validated public projection.

§Errors

Returns an error when the retained context does not match the selected catalog descriptor.

Source

pub fn diagnostic_view( &self, ) -> Result<DiagnosticView<'_>, ViewContextViolation>

Creates a descriptor-validated diagnostic projection.

The view never includes the source, caller location, or backtrace.

§Errors

Returns an error when the retained context does not match the selected catalog descriptor.

Source

pub fn location(&self) -> &'static Location<'static>

Returns the first-promotion caller location.

Source

pub fn backtrace(&self) -> Option<&Backtrace>

Returns the captured backtrace, if standard-library capture was enabled.

Trait Implementations§

Source§

impl AsRef<Error> for ClientError

Source§

fn as_ref(&self) -> &Error

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for ClientError

Source§

fn clone(&self) -> Self

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 ClientError

Source§

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

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

impl Deref for ClientError

Source§

type Target = Error

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Display for ClientError

Source§

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

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

impl Error for ClientError

Source§

fn source(&self) -> Option<&(dyn StdError + '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
Source§

impl From<Arc<Error>> for ClientError

Source§

fn from(error: SharedError) -> Self

Converts to this type from the input type.
Source§

impl From<ClientError> for SharedError

Source§

fn from(error: ClientError) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for ClientError

Source§

fn from(error: Error) -> Self

Converts to this type from the input type.
Source§

impl From<MQBrokerException> for ClientError

Source§

fn from(exception: MQBrokerException) -> Self

Converts to this type from the input type.
Source§

impl From<MQClientException> for ClientError

Source§

fn from(exception: MQClientException) -> Self

Converts to this type from the input type.
Source§

impl From<OffsetNotFoundException> for ClientError

Source§

fn from(exception: OffsetNotFoundException) -> Self

Converts to this type from the input type.
Source§

impl From<RequestTimeoutException> for ClientError

Source§

fn from(_exception: RequestTimeoutException) -> Self

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
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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

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

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

Source§

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

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

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

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

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

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