[−][src]Enum rocket::Outcome
An enum representing success (Success
), failure (Failure
), or
forwarding (Forward
).
See the top level documentation for detailed information.
Variants
Success(S)
Contains the success value.
Failure(E)
Contains the failure error value.
Forward(F)
Contains the value to forward on.
Methods
impl<S, E, F> Outcome<S, E, F>
[src]
pub fn unwrap(self) -> S
[src]
Unwraps the Outcome, yielding the contents of a Success.
Panics
Panics if the value is not Success
.
Examples
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.unwrap(), 10);
pub fn expect(self, message: &str) -> S
[src]
Unwraps the Outcome, yielding the contents of a Success.
Panics
If the value is not Success
, panics with the given message
.
Examples
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.expect("success value"), 10);
pub fn is_success(&self) -> bool
[src]
Return true if this Outcome
is a Success
.
Examples
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.is_success(), true); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.is_success(), false); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.is_success(), false);
pub fn is_failure(&self) -> bool
[src]
Return true if this Outcome
is a Failure
.
Examples
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.is_failure(), false); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.is_failure(), true); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.is_failure(), false);
pub fn is_forward(&self) -> bool
[src]
Return true if this Outcome
is a Forward
.
Examples
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.is_forward(), false); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.is_forward(), false); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.is_forward(), true);
pub fn succeeded(self) -> Option<S>
[src]
Converts from Outcome<S, E, F>
to Option<S>
.
Returns the Some
of the Success
if this is a Success
, otherwise
returns None
. self
is consumed, and all other values are discarded.
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.succeeded(), Some(10)); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.succeeded(), None); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.succeeded(), None);
pub fn failed(self) -> Option<E>
[src]
Converts from Outcome<S, E, F>
to Option<E>
.
Returns the Some
of the Failure
if this is a Failure
, otherwise
returns None
. self
is consumed, and all other values are discarded.
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.failed(), None); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.failed(), Some("Hi! I'm an error.")); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.failed(), None);
pub fn forwarded(self) -> Option<F>
[src]
Converts from Outcome<S, E, F>
to Option<F>
.
Returns the Some
of the Forward
if this is a Forward
, otherwise
returns None
. self
is consumed, and all other values are discarded.
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.forwarded(), None); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.forwarded(), None); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.forwarded(), Some(25));
pub fn success_or<T>(self, value: T) -> Result<S, T>
[src]
Converts from Outcome<S, E, F>
to Result<S, T>
for a given T
.
Returns Ok
with the Success
value if this is a Success
, otherwise
returns an Err
with the provided value. self
is consumed, and all
other values are discarded.
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.success_or(false), Ok(10)); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.success_or(false), Err(false)); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.success_or("whoops"), Err("whoops"));
pub fn success_or_else<T, V: FnOnce() -> T>(self, f: V) -> Result<S, T>
[src]
Converts from Outcome<S, E, F>
to Result<S, T>
for a given T
produced from a supplied function or closure.
Returns Ok
with the Success
value if this is a Success
, otherwise
returns an Err
with the result of calling f
. self
is consumed, and
all other values are discarded.
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.success_or_else(|| false), Ok(10)); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.success_or_else(|| false), Err(false)); let x: Outcome<i32, &str, usize> = Forward(25); assert_eq!(x.success_or_else(|| "whoops"), Err("whoops"));
pub fn as_ref(&self) -> Outcome<&S, &E, &F>
[src]
Converts from Outcome<S, E, F>
to Outcome<&S, &E, &F>
.
let x: Outcome<i32, &str, usize> = Success(10); assert_eq!(x.as_ref(), Success(&10)); let x: Outcome<i32, &str, usize> = Failure("Hi! I'm an error."); assert_eq!(x.as_ref(), Failure(&"Hi! I'm an error."));
pub fn map<T, M: FnOnce(S) -> T>(self, f: M) -> Outcome<T, E, F>
[src]
Maps an Outcome<S, E, F>
to an Outcome<T, E, F>
by applying the
function f
to the value of type S
in self
if self
is an
Outcome::Success
.
let x: Outcome<i32, &str, usize> = Success(10); let mapped = x.map(|v| if v == 10 { "10" } else { "not 10" }); assert_eq!(mapped, Success("10"));
pub fn map_failure<T, M: FnOnce(E) -> T>(self, f: M) -> Outcome<S, T, F>
[src]
Maps an Outcome<S, E, F>
to an Outcome<S, T, F>
by applying the
function f
to the value of type E
in self
if self
is an
Outcome::Failure
.
let x: Outcome<i32, &str, usize> = Failure("hi"); let mapped = x.map_failure(|v| if v == "hi" { 10 } else { 0 }); assert_eq!(mapped, Failure(10));
pub fn map_forward<T, M: FnOnce(F) -> T>(self, f: M) -> Outcome<S, E, T>
[src]
Maps an Outcome<S, E, F>
to an Outcome<S, E, T>
by applying the
function f
to the value of type F
in self
if self
is an
Outcome::Forward
.
let x: Outcome<i32, &str, usize> = Forward(5); let mapped = x.map_forward(|v| if v == 5 { "a" } else { "b" }); assert_eq!(mapped, Forward("a"));
pub fn and_then<T, M: FnOnce(S) -> Outcome<T, E, F>>(
self,
f: M
) -> Outcome<T, E, F>
[src]
self,
f: M
) -> Outcome<T, E, F>
Maps an Outcome<S, E, F>
to an Outcome<T, E, F>
by applying the
function f
to the value of type S
in self
if self
is an
Outcome::Success
.
Examples
let x: Outcome<i32, &str, bool> = Success(10); let mapped = x.and_then(|v| match v { 10 => Success("10"), 1 => Forward(false), _ => Failure("30") }); assert_eq!(mapped, Success("10"));
pub fn failure_then<T, M: FnOnce(E) -> Outcome<S, T, F>>(
self,
f: M
) -> Outcome<S, T, F>
[src]
self,
f: M
) -> Outcome<S, T, F>
Maps an Outcome<S, E, F>
to an Outcome<S, T, F>
by applying the
function f
to the value of type E
in self
if self
is an
Outcome::Failure
.
Examples
let x: Outcome<i32, &str, bool> = Failure("hi"); let mapped = x.failure_then(|v| match v { "hi" => Failure(10), "test" => Forward(false), _ => Success(10) }); assert_eq!(mapped, Failure(10));
pub fn forward_then<T, M: FnOnce(F) -> Outcome<S, E, T>>(
self,
f: M
) -> Outcome<S, E, T>
[src]
self,
f: M
) -> Outcome<S, E, T>
Maps an Outcome<S, E, F>
to an Outcome<S, E, T>
by applying the
function f
to the value of type F
in self
if self
is an
Outcome::Forward
.
Examples
let x: Outcome<i32, &str, Option<bool>> = Forward(Some(false)); let mapped = x.forward_then(|v| match v { Some(true) => Success(10), Some(false) => Forward(20), None => Failure("10") }); assert_eq!(mapped, Forward(20));
pub fn as_mut(&mut self) -> Outcome<&mut S, &mut E, &mut F>
[src]
Converts from Outcome<S, E, F>
to Outcome<&mut S, &mut E, &mut F>
.
let mut x: Outcome<i32, &str, usize> = Success(10); if let Success(val) = x.as_mut() { *val = 20; } assert_eq!(x.unwrap(), 20);
Trait Implementations
impl<S: PartialOrd, E: PartialOrd, F: PartialOrd> PartialOrd<Outcome<S, E, F>> for Outcome<S, E, F>
[src]
fn partial_cmp(&self, other: &Outcome<S, E, F>) -> Option<Ordering>
[src]
fn lt(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn le(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn gt(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn ge(&self, other: &Outcome<S, E, F>) -> bool
[src]
impl<S: Copy, E: Copy, F: Copy> Copy for Outcome<S, E, F>
[src]
impl<S: PartialEq, E: PartialEq, F: PartialEq> PartialEq<Outcome<S, E, F>> for Outcome<S, E, F>
[src]
fn eq(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn ne(&self, other: &Outcome<S, E, F>) -> bool
[src]
impl<S: Clone, E: Clone, F: Clone> Clone for Outcome<S, E, F>
[src]
fn clone(&self) -> Outcome<S, E, F>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<S: Ord, E: Ord, F: Ord> Ord for Outcome<S, E, F>
[src]
fn cmp(&self, other: &Outcome<S, E, F>) -> Ordering
[src]
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
fn clamp(self, min: Self, max: Self) -> Self
[src]
clamp
)Returns max if self is greater than max, and min if self is less than min. Otherwise this will return self. Panics if min > max. Read more
impl<S: Eq, E: Eq, F: Eq> Eq for Outcome<S, E, F>
[src]
impl<S, E, F> Display for Outcome<S, E, F>
[src]
impl<S, E, F> Debug for Outcome<S, E, F>
[src]
impl<S: Hash, E: Hash, F: Hash> Hash for Outcome<S, E, F>
[src]
fn hash<__HSEF: Hasher>(&self, state: &mut __HSEF)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<S, E, F> Try for Outcome<S, E, F>
[src]
type Ok = S
try_trait
)The type of this value when viewed as successful.
type Error = Result<F, E>
try_trait
)The type of this value when viewed as failed.
fn into_result(self) -> Result<Self::Ok, Self::Error>
[src]
fn from_error(val: Self::Error) -> Self
[src]
fn from_ok(val: Self::Ok) -> Self
[src]
Auto Trait Implementations
impl<S, E, F> Send for Outcome<S, E, F> where
E: Send,
F: Send,
S: Send,
E: Send,
F: Send,
S: Send,
impl<S, E, F> Sync for Outcome<S, E, F> where
E: Sync,
F: Sync,
S: Sync,
E: Sync,
F: Sync,
S: Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Typeable for T where
T: Any,
T: Any,
impl<T> IntoCollection for T
[src]
ⓘImportant traits for SmallVec<A>fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
[src]
A: Array<Item = T>,
ⓘImportant traits for SmallVec<A>fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
A: Array<Item = U>,
F: FnMut(T) -> U,
[src]
A: Array<Item = U>,
F: FnMut(T) -> U,
impl<T, I> AsResult for T where
I: Input,
[src]
I: Input,
impl<Q, K> Equivalent for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,