pub enum Result<T, L, F> {
Success(T),
LocalErr(L),
FatalErr(F),
}
Expand description
A type representing success (Success
), a local error (LocalErr
), or a fatal error (FatalErr
).
See the woah
top-level documentation for details.
Variants
Success(T)
Contains the success value.
LocalErr(L)
Contains a local error value (which should be handled)
FatalErr(F)
Contains a fatal error value (which should be propagated)
Implementations
sourceimpl<T, L, F> Result<T, L, F>
impl<T, L, F> Result<T, L, F>
sourcepub fn into_result(self) -> StdResult<StdResult<T, L>, F>
pub fn into_result(self) -> StdResult<StdResult<T, L>, F>
Convert woah::Result<T, L, F>
into a Result<Result<T, L>, F>
, which is equivalent
in ?
behavior.
Example
use woah::prelude::*;
let result: StdResult<StdResult<i64, &str>, &str> = LocalErr("a local error").into_result();
assert_eq!(result, Ok(Err("a local error")));
sourcepub fn from_result(ok: StdResult<T, L>) -> Self
pub fn from_result(ok: StdResult<T, L>) -> Self
sourcepub fn from_success(val: T) -> Self
pub fn from_success(val: T) -> Self
sourcepub fn from_local_err(err: L) -> Self
pub fn from_local_err(err: L) -> Self
sourcepub fn from_fatal_error(err: F) -> Self
pub fn from_fatal_error(err: F) -> Self
sourcepub fn is_success(&self) -> bool
pub fn is_success(&self) -> bool
Returns true
if the result is Success
.
Example
use woah::prelude::*;
let x: Result<i32, &str, &str> = Success(-3);
assert_eq!(x.is_success(), true);
let x: Result<i32, &str, &str> = LocalErr("Some error message");
assert_eq!(x.is_success(), false);
let x: Result<i32, &str, &str> = FatalErr("Another error message");
assert_eq!(x.is_success(), false);
sourcepub fn is_err(&self) -> bool
pub fn is_err(&self) -> bool
Returns true
if the result is LocalErr
or FatalErr
.
Example
use woah::prelude::*;
let x: Result<i32, &str, &str> = Success(-3);
assert_eq!(x.is_err(), false);
let x: Result<i32, &str, &str> = LocalErr("Some error message");
assert_eq!(x.is_err(), true);
let x: Result<i32, &str, &str> = FatalErr("Another error message");
assert_eq!(x.is_err(), true);
sourcepub fn is_local_err(&self) -> bool
pub fn is_local_err(&self) -> bool
Returns true
if the result is LocalErr
.
Example
use woah::prelude::*;
let x: Result<i32, &str, &str> = Success(-3);
assert_eq!(x.is_local_err(), false);
let x: Result<i32, &str, &str> = LocalErr("Some error message");
assert_eq!(x.is_local_err(), true);
let x: Result<i32, &str, &str> = FatalErr("Another error message");
assert_eq!(x.is_local_err(), false);
sourcepub fn is_fatal_err(&self) -> bool
pub fn is_fatal_err(&self) -> bool
Returns true
if the result is FatalErr
.
Example
use woah::prelude::*;
let x: Result<i32, &str, &str> = Success(-3);
assert_eq!(x.is_fatal_err(), false);
let x: Result<i32, &str, &str> = LocalErr("Some error message");
assert_eq!(x.is_fatal_err(), false);
let x: Result<i32, &str, &str> = FatalErr("Another error message");
assert_eq!(x.is_fatal_err(), true);
sourcepub fn contains<U>(&self, x: &U) -> bool where
U: PartialEq<T>,
pub fn contains<U>(&self, x: &U) -> bool where
U: PartialEq<T>,
Returns true
if the result is a Success
value containing the given value.
Examples
use woah::prelude::*;
let x: Result<u32, &str, &str> = Success(2);
assert_eq!(x.contains(&2), true);
let x: Result<u32, &str, &str> = Success(3);
assert_eq!(x.contains(&2), false);
let x: Result<u32, &str, &str> = LocalErr("Some error message");
assert_eq!(x.contains(&2), false);
sourcepub fn contains_err<U, Y>(&self, e: Either<&U, &Y>) -> bool where
U: PartialEq<L>,
Y: PartialEq<F>,
pub fn contains_err<U, Y>(&self, e: Either<&U, &Y>) -> bool where
U: PartialEq<L>,
Y: PartialEq<F>,
Returns true
if the result is a LocalErr
or FatalErr
value containing the given value.
Examples
use woah::prelude::*;
use either::Either;
let x: Result<&str, u32, &str> = LocalErr(2);
let check: Either<_, &&str> = Either::Left(&2);
assert_eq!(x.contains_err(check), true);
let x: Result<&str, &str, u32> = FatalErr(3);
let check: Either<&&str, _> = Either::Right(&2);
assert_eq!(x.contains_err(check), false);
let x: Result<u32, &str, &str> = Success(0);
let check: Either<&&str, &&str> = Either::Left(&"");
assert_eq!(x.contains_err(check), false);
sourcepub fn contains_local_err<E>(&self, e: &E) -> bool where
E: PartialEq<L>,
pub fn contains_local_err<E>(&self, e: &E) -> bool where
E: PartialEq<L>,
Returns true
if the result is a LocalErr
value containing the given value.
Examples
use woah::prelude::*;
let x: Result<&str, u32, &str> = LocalErr(2);
assert_eq!(x.contains_local_err(&2), true);
let x: Result<&str, u32, &str> = LocalErr(3);
assert_eq!(x.contains_local_err(&2), false);
let x: Result<&str, u32, &str> = Success("Some error message");
assert_eq!(x.contains_local_err(&2), false);
sourcepub fn contains_fatal_err<E>(&self, e: &E) -> bool where
E: PartialEq<F>,
pub fn contains_fatal_err<E>(&self, e: &E) -> bool where
E: PartialEq<F>,
Returns true
if the result is a FatalErr
value containing the given value.
Examples
use woah::prelude::*;
let x: Result<&str, &str, u32> = FatalErr(2);
assert_eq!(x.contains_fatal_err(&2), true);
let x: Result<&str, &str, u32> = FatalErr(3);
assert_eq!(x.contains_fatal_err(&2), false);
let x: Result<&str, &str, u32> = Success("Some error message");
assert_eq!(x.contains_fatal_err(&2), false);
sourcepub fn success(self) -> Option<T>
pub fn success(self) -> Option<T>
Convert a Success
variant to an Option::Some
, otherwise to a None
.
Example
use woah::prelude::*;
let x: Result<u32, &str, &str> = Success(2);
assert_eq!(x.success(), Some(2));
let x: Result<&str, u32, &str> = LocalErr(2);
assert_eq!(x.success(), None);
let x: Result<&str, &str, u32> = FatalErr(2);
assert_eq!(x.success(), None);
sourcepub fn err(self) -> Option<Either<L, F>>
pub fn err(self) -> Option<Either<L, F>>
Convert a LocalErr
or FatalErr
variant to an Option<Either<_, _>>
, otherwise to a None
.
Example
use woah::prelude::*;
use either::Either::{self, Left, Right};
let x: Result<u32, &str, &str> = Success(2);
assert_eq!(x.err(), None);
let x: Result<&str, u32, &str> = LocalErr(2);
assert_eq!(x.err(), Some(Left(2)));
let x: Result<&str, &str, u32> = FatalErr(2);
assert_eq!(x.err(), Some(Right(2)));
sourcepub fn local_err(self) -> Option<L>
pub fn local_err(self) -> Option<L>
Convert a LocalErr
variant to an Option::Some
, otherwise to a None
.
Example
use woah::prelude::*;
let x: Result<u32, &str, &str> = Success(2);
assert_eq!(x.local_err(), None);
let x: Result<&str, u32, &str> = LocalErr(2);
assert_eq!(x.local_err(), Some(2));
let x: Result<&str, &str, u32> = FatalErr(2);
assert_eq!(x.local_err(), None);
sourcepub fn fatal_err(self) -> Option<F>
pub fn fatal_err(self) -> Option<F>
Convert a FatalErr
variant to an Option::Some
, otherwise to a None
.
Example
use woah::prelude::*;
let x: Result<u32, &str, &str> = Success(2);
assert_eq!(x.fatal_err(), None);
let x: Result<&str, u32, &str> = LocalErr(2);
assert_eq!(x.fatal_err(), None);
let x: Result<&str, &str, u32> = FatalErr(2);
assert_eq!(x.fatal_err(), Some(2));
sourcepub fn as_ref(&self) -> Result<&T, &L, &F>
pub fn as_ref(&self) -> Result<&T, &L, &F>
Get a reference to the contained value.
Example
use woah::prelude::*;
let x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.as_ref(), Success(&0));
let x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.as_ref(), LocalErr(&0));
let x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.as_ref(), FatalErr(&0));
sourcepub fn as_mut(&mut self) -> Result<&mut T, &mut L, &mut F>
pub fn as_mut(&mut self) -> Result<&mut T, &mut L, &mut F>
Get a mutable reference to the contained value.
Example
use woah::prelude::*;
let mut x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.as_mut(), Success(&mut 0));
let mut x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.as_mut(), LocalErr(&mut 0));
let mut x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.as_mut(), FatalErr(&mut 0));
sourcepub fn map<U, S>(self, f: U) -> Result<S, L, F> where
U: FnOnce(T) -> S,
pub fn map<U, S>(self, f: U) -> Result<S, L, F> where
U: FnOnce(T) -> S,
Apply a function to the contained value if it’s a Success
.
Example
use woah::prelude::*;
let x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.map(|s| s + 1), Success(1));
let x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.map(|s| s + 1), LocalErr(0));
let x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.map(|s| s + 1), FatalErr(0));
sourcepub fn map_or<U, G>(self, default: U, f: G) -> U where
G: FnOnce(T) -> U,
pub fn map_or<U, G>(self, default: U, f: G) -> U where
G: FnOnce(T) -> U,
Apply a function to the contained value if it’s a Success
.
Otherwise return the provided value.
Example
use woah::prelude::*;
let x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.map_or(5, |s| s + 1), 1);
let x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.map_or(5, |s| s + 1), 5);
let x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.map_or(5, |s| s + 1), 5);
sourcepub fn map_or_else<U, LD, FD, G>(
self,
default_local: LD,
default_fatal: FD,
f: G
) -> U where
LD: FnOnce(L) -> U,
FD: FnOnce(F) -> U,
G: FnOnce(T) -> U,
pub fn map_or_else<U, LD, FD, G>(
self,
default_local: LD,
default_fatal: FD,
f: G
) -> U where
LD: FnOnce(L) -> U,
FD: FnOnce(F) -> U,
G: FnOnce(T) -> U,
Apply a function to the contained value if it’s a Success
.
Otherwise run one of the provided default functions.
Example
use woah::prelude::*;
let x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.map_or_else(|l| l + 3, |f| f + 2, |s| s + 1), 1);
let x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.map_or_else(|l| l + 3, |f| f + 2, |s| s + 1), 3);
let x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.map_or_else(|l| l + 3, |f| f + 2, |s| s + 1), 2);
sourcepub fn map_err<U, M, G>(self, f: U) -> Result<T, M, G> where
U: FnOnce(Either<L, F>) -> Either<M, G>,
pub fn map_err<U, M, G>(self, f: U) -> Result<T, M, G> where
U: FnOnce(Either<L, F>) -> Either<M, G>,
Apply a function to the contained value if it’s a LocalErr
or FatalErr
.
Example
use woah::prelude::*;
use either::Either::{self, Left, Right};
fn modify_error(err: Either<u32, u32>) -> Either<u32, u32> {
match err {
Left(l) => Left(l + 1),
Right(f) => Right(f + 1),
}
}
let x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.map_err(modify_error), Success(0));
let x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.map_err(modify_error), LocalErr(1));
let x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.map_err(modify_error), FatalErr(1));
sourcepub fn map_local_err<U, S>(self, f: U) -> Result<T, S, F> where
U: FnOnce(L) -> S,
pub fn map_local_err<U, S>(self, f: U) -> Result<T, S, F> where
U: FnOnce(L) -> S,
Apply a function to the contained value if it’s a LocalErr
.
Example
use woah::prelude::*;
let x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.map_local_err(|l| l + 1), Success(0));
let x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.map_local_err(|l| l + 1), LocalErr(1));
let x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.map_local_err(|l| l + 1), FatalErr(0));
sourcepub fn map_fatal_err<U, S>(self, f: U) -> Result<T, L, S> where
U: FnOnce(F) -> S,
pub fn map_fatal_err<U, S>(self, f: U) -> Result<T, L, S> where
U: FnOnce(F) -> S,
Apply a function to the contained value if it’s a FatalErr
.
Example
use woah::prelude::*;
let x: Result<u32, u32, u32> = Success(0);
assert_eq!(x.map_fatal_err(|f| f + 1), Success(0));
let x: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(x.map_fatal_err(|f| f + 1), LocalErr(0));
let x: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(x.map_fatal_err(|f| f + 1), FatalErr(1));
sourcepub fn iter(&self) -> Iter<'_, T>ⓘNotable traits for Iter<'a, T>impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;
pub fn iter(&self) -> Iter<'_, T>ⓘNotable traits for Iter<'a, T>impl<'a, T> Iterator for Iter<'a, T> type Item = &'a T;
sourcepub fn iter_mut(&mut self) -> IterMut<'_, T>ⓘNotable traits for IterMut<'a, T>impl<'a, T> Iterator for IterMut<'a, T> type Item = &'a mut T;
pub fn iter_mut(&mut self) -> IterMut<'_, T>ⓘNotable traits for IterMut<'a, T>impl<'a, T> Iterator for IterMut<'a, T> type Item = &'a mut T;
sourcepub fn or<M, G>(
self,
res_local: Result<T, M, G>,
res_fatal: Result<T, M, G>
) -> Result<T, M, G>
pub fn or<M, G>(
self,
res_local: Result<T, M, G>,
res_fatal: Result<T, M, G>
) -> Result<T, M, G>
If it’s a LocalErr
or FatalErr
, replace them with the appropriate value.
Example
use woah::prelude::*;
let l: Result<u32, u32, u32> = LocalErr(1);
let f: Result<u32, u32, u32> = FatalErr(2);
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.or(l, f), Success(0));
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.or(l, f), LocalErr(1));
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.or(l, f), FatalErr(2));
sourcepub fn or_local<M>(self, res: Result<T, M, F>) -> Result<T, M, F>
pub fn or_local<M>(self, res: Result<T, M, F>) -> Result<T, M, F>
If it’s a LocalErr
, replace them with the given value.
Example
use woah::prelude::*;
let l: Result<u32, u32, u32> = LocalErr(1);
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.or_local(l), Success(0));
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.or_local(l), LocalErr(1));
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.or_local(l), FatalErr(0));
sourcepub fn or_fatal<G>(self, res: Result<T, L, G>) -> Result<T, L, G>
pub fn or_fatal<G>(self, res: Result<T, L, G>) -> Result<T, L, G>
If it’s a FatalErr
, replace them with the given value.
Example
use woah::prelude::*;
let f: Result<u32, u32, u32> = FatalErr(2);
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.or_fatal(f), Success(0));
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.or_fatal(f), LocalErr(0));
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.or_fatal(f), FatalErr(2));
sourcepub fn or_else<O, P, M, G>(self, op_local: O, op_fatal: P) -> Result<T, M, G> where
O: FnOnce(L) -> Result<T, M, G>,
P: FnOnce(F) -> Result<T, M, G>,
pub fn or_else<O, P, M, G>(self, op_local: O, op_fatal: P) -> Result<T, M, G> where
O: FnOnce(L) -> Result<T, M, G>,
P: FnOnce(F) -> Result<T, M, G>,
If it’s a LocalErr
or FatalErr
, replace them with the appropriate function result.
Example
use woah::prelude::*;
let l = |l| LocalErr(l + 1);
let f = |f| FatalErr(f + 2);
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.or_else(l, f), Success(0));
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.or_else(l, f), LocalErr(1));
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.or_else(l, f), FatalErr(2));
sourcepub fn or_else_local<O, M>(self, op: O) -> Result<T, M, F> where
O: FnOnce(L) -> Result<T, M, F>,
pub fn or_else_local<O, M>(self, op: O) -> Result<T, M, F> where
O: FnOnce(L) -> Result<T, M, F>,
If it’s a LocalErr
, replace it with the appropriate function result.
Example
use woah::prelude::*;
let l = |l| LocalErr(l + 1);
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.or_else_local(l), Success(0));
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.or_else_local(l), LocalErr(1));
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.or_else_local(l), FatalErr(0));
sourcepub fn or_else_fatal<O, G>(self, op: O) -> Result<T, L, G> where
O: FnOnce(F) -> Result<T, L, G>,
pub fn or_else_fatal<O, G>(self, op: O) -> Result<T, L, G> where
O: FnOnce(F) -> Result<T, L, G>,
If it’s a FatalErr
, replace it with the appropriate function result.
Example
use woah::prelude::*;
let f = |f| FatalErr(f + 2);
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.or_else_fatal(f), Success(0));
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.or_else_fatal(f), LocalErr(0));
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.or_else_fatal(f), FatalErr(2));
sourcepub fn unwrap_or(self, alt: T) -> T
pub fn unwrap_or(self, alt: T) -> T
Return inner value if it’s a Success
, or alt
otherwise.
Example
use woah::prelude::*;
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.unwrap_or(5), 0);
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.unwrap_or(5), 5);
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.unwrap_or(5), 5);
sourcepub fn unwrap_or_else<M, G>(self, local_op: M, fatal_op: G) -> T where
M: FnOnce(L) -> T,
G: FnOnce(F) -> T,
pub fn unwrap_or_else<M, G>(self, local_op: M, fatal_op: G) -> T where
M: FnOnce(L) -> T,
G: FnOnce(F) -> T,
Return inner value if it’s a Success
, or the appropriate function otherwise.
Example
use woah::prelude::*;
let l = |_| 5;
let f = |_| 10;
let r: Result<u32, u32, u32> = Success(0);
assert_eq!(r.unwrap_or_else(l, f), 0);
let r: Result<u32, u32, u32> = LocalErr(0);
assert_eq!(r.unwrap_or_else(l, f), 5);
let r: Result<u32, u32, u32> = FatalErr(0);
assert_eq!(r.unwrap_or_else(l, f), 10);
sourceimpl<T, L, F> Result<T, L, F> where
T: Debug,
L: Debug,
F: Debug,
impl<T, L, F> Result<T, L, F> where
T: Debug,
L: Debug,
F: Debug,
pub fn unwrap_err(self) -> Either<L, F>
pub fn expect_err(self, msg: &str) -> Either<L, F>
sourceimpl<T, L, F> Result<T, L, F> where
T: Debug,
F: Debug,
impl<T, L, F> Result<T, L, F> where
T: Debug,
F: Debug,
pub fn unwrap_local_err(self) -> L
pub fn expect_local_err(self, msg: &str) -> L
sourceimpl<T, L, F> Result<T, L, F> where
T: Debug,
L: Debug,
impl<T, L, F> Result<T, L, F> where
T: Debug,
L: Debug,
pub fn unwrap_fatal_err(self) -> F
pub fn expect_fatal_err(self, msg: &str) -> F
sourceimpl<T, L, F> Result<T, L, F> where
T: Default,
impl<T, L, F> Result<T, L, F> where
T: Default,
pub fn unwrap_or_default(self) -> T
pub fn into_result_default(self) -> StdResult<T, F>
sourceimpl<T, L, F> Result<T, L, F> where
L: Into<!>,
F: Into<!>,
impl<T, L, F> Result<T, L, F> where
L: Into<!>,
F: Into<!>,
pub fn into_success(self) -> T
Trait Implementations
sourceimpl<'de, T, L, F> Deserialize<'de> for Result<T, L, F> where
T: Deserialize<'de>,
L: Deserialize<'de>,
F: Deserialize<'de>,
impl<'de, T, L, F> Deserialize<'de> for Result<T, L, F> where
T: Deserialize<'de>,
L: Deserialize<'de>,
F: Deserialize<'de>,
sourcefn deserialize<D>(deserializer: D) -> StdResult<Self, D::Error> where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> StdResult<Self, D::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<A, V, L, F> FromIterator<Result<A, L, F>> for Result<V, L, F> where
V: FromIterator<A>,
impl<A, V, L, F> FromIterator<Result<A, L, F>> for Result<V, L, F> where
V: FromIterator<A>,
sourceimpl<T, L, F> FromResidual<<Result<T, L, F> as Try>::Residual> for Result<T, L, F>
impl<T, L, F> FromResidual<<Result<T, L, F> as Try>::Residual> for Result<T, L, F>
sourcefn from_residual(residual: StdResult<Infallible, F>) -> Self
fn from_residual(residual: StdResult<Infallible, F>) -> Self
Constructs the type from a compatible Residual
type. Read more
sourceimpl<'a, T, L, F> IntoIterator for &'a mut Result<T, L, F>
impl<'a, T, L, F> IntoIterator for &'a mut Result<T, L, F>
sourceimpl<'a, T, L, F> IntoIterator for &'a Result<T, L, F>
impl<'a, T, L, F> IntoIterator for &'a Result<T, L, F>
sourceimpl<T, L, F> IntoIterator for Result<T, L, F>
impl<T, L, F> IntoIterator for Result<T, L, F>
sourceimpl<T: Ord, L: Ord, F: Ord> Ord for Result<T, L, F>
impl<T: Ord, L: Ord, F: Ord> Ord for Result<T, L, F>
sourceimpl<T: PartialOrd, L: PartialOrd, F: PartialOrd> PartialOrd<Result<T, L, F>> for Result<T, L, F>
impl<T: PartialOrd, L: PartialOrd, F: PartialOrd> PartialOrd<Result<T, L, F>> for Result<T, L, F>
sourcefn partial_cmp(&self, other: &Result<T, L, F>) -> Option<Ordering>
fn partial_cmp(&self, other: &Result<T, L, F>) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl<T, L, F> Try for Result<T, L, F>
impl<T, L, F> Try for Result<T, L, F>
type Residual = Result<Infallible, F>
type Residual = Result<Infallible, F>
The type of the value passed to FromResidual::from_residual
as part of ?
when short-circuiting. Read more
sourcefn from_output(output: StdResult<T, L>) -> Self
fn from_output(output: StdResult<T, L>) -> Self
Constructs the type from its Output
type. Read more
sourcefn branch(self) -> ControlFlow<StdResult<Infallible, F>, StdResult<T, L>>
fn branch(self) -> ControlFlow<StdResult<Infallible, F>, StdResult<T, L>>
Used in ?
to decide whether the operator should produce a value
(because this returned ControlFlow::Continue
)
or propagate a value back to the caller
(because this returned ControlFlow::Break
). Read more
impl<T: Copy, L: Copy, F: Copy> Copy for Result<T, L, F>
impl<T: Eq, L: Eq, F: Eq> Eq for Result<T, L, F>
impl<T, L, F> StructuralEq for Result<T, L, F>
impl<T, L, F> StructuralPartialEq for Result<T, L, F>
Auto Trait Implementations
impl<T, L, F> RefUnwindSafe for Result<T, L, F> where
F: RefUnwindSafe,
L: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, L, F> Send for Result<T, L, F> where
F: Send,
L: Send,
T: Send,
impl<T, L, F> Sync for Result<T, L, F> where
F: Sync,
L: Sync,
T: Sync,
impl<T, L, F> Unpin for Result<T, L, F> where
F: Unpin,
L: Unpin,
T: Unpin,
impl<T, L, F> UnwindSafe for Result<T, L, F> where
F: UnwindSafe,
L: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
Uses borrowed data to replace owned data, usually by cloning. Read more