Skip to main content

ErrPartsClassed

Trait ErrPartsClassed 

Source
#[doc(hidden)]
pub trait ErrPartsClassed { // Required method fn __mx_classed_parts(&self) -> Option<ErrParts>; }
Expand description

Autoref-specialisation probe, first stage, preferred arm: E: RConditionData.

Under the serde feature a declared-shape stage runs before this one: a shape that serde_error_shape! declared for E wins over the impl (see ErrShapeDeclared).

The generated code calls (&e).__mx_classed_parts() with both first-stage traits in scope. Method resolution tries the receiver type &E by value first, which only this impl (on E, taking &self) satisfies; the ErrPartsUnclassed arm on &E needs one more auto-ref and is only reached when E does not implement RConditionData. It yields None, and the second stage (ErrPartsSerde / ErrPartsDebug) decides.

Two two-way probes rather than one three-way probe: the Serialize and Debug bounds both hold for &E whenever they hold for E, so a single method name with three impls at increasing reference depth is ambiguous at the first step. Each stage has exactly one impl on E and one on &E.

Required Methods§

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§