Trait core::ops::FromResidual [−][src]
pub trait FromResidual<R = <Self as Try>::Residual> {
fn from_residual(residual: R) -> Self;
}This is supported on non-crate feature
miri-test-libstd or test or doctest only.Expand description
Used to specify which residuals can be converted into which crate::ops::Try types.
Every Try type needs to be recreatable from its own associated
Residual type, but can also have additional FromResidual implementations
to support interconversion with other Try types.
Required methods
fn from_residual(residual: R) -> Self
fn from_residual(residual: R) -> Self
Constructs the type from a compatible Residual type.
This should be implemented consistently with the branch method such
that applying the ? operator will get back an equivalent residual:
FromResidual::from_residual(r).branch() --> ControlFlow::Break(r).
(It must not be an identical residual when interconversion is involved.)
Examples
#![feature(try_trait_v2)]
use std::ops::{ControlFlow, FromResidual};
assert_eq!(Result::<String, i64>::from_residual(Err(3_u8)), Err(3));
assert_eq!(Option::<String>::from_residual(None), None);
assert_eq!(
ControlFlow::<_, String>::from_residual(ControlFlow::Break(5)),
ControlFlow::Break(5),
);Run