pub trait Residual<O> {
type TryType: Try
where
<Self::TryType as Try>::Output == O,
<Self::TryType as Try>::Residual == Self;
}
Expand description
Allows retrieving the canonical type implementing Try
that has this type
as its residual and allows it to hold an O
as its output.
If you think of the Try
trait as splitting a type into its Try::Output
and Try::Residual
components, this allows putting them back together.
For example,
Result<T, E>: Try<Output = T, Residual = Result<Infallible, E>>
,
and in the other direction,
<Result<Infallible, E> as Residual<T>>::TryType = Result<T, E>
.