[−][src]Enum rocket::outcome::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]
impl<S, E, F> Outcome<S, E, F>pub fn unwrap(self) -> S[src]
pub fn unwrap(self) -> SUnwraps 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]
pub fn expect(self, message: &str) -> SUnwraps 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]
pub fn is_success(&self) -> boolReturn 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]
pub fn is_failure(&self) -> boolReturn 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]
pub fn is_forward(&self) -> boolReturn 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]
pub fn succeeded(self) -> Option<S>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]
pub fn failed(self) -> Option<E>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]
pub fn forwarded(self) -> Option<F>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]
pub fn success_or<T>(self, value: T) -> Result<S, T>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]
pub fn success_or_else<T, V: FnOnce() -> T>(self, f: V) -> Result<S, T>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]
pub fn as_ref(&self) -> Outcome<&S, &E, &F>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]
pub fn map<T, M: FnOnce(S) -> T>(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.
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]
pub fn map_failure<T, M: FnOnce(E) -> T>(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.
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]
pub fn map_forward<T, M: FnOnce(F) -> T>(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.
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 as_mut(&mut self) -> Outcome<&mut S, &mut E, &mut F>[src]
pub fn as_mut(&mut self) -> Outcome<&mut S, &mut E, &mut F>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: PartialEq, E: PartialEq, F: PartialEq> PartialEq<Outcome<S, E, F>> for Outcome<S, E, F>[src]
impl<S: PartialEq, E: PartialEq, F: PartialEq> PartialEq<Outcome<S, E, F>> for Outcome<S, E, F>fn eq(&self, other: &Outcome<S, E, F>) -> bool[src]
fn eq(&self, other: &Outcome<S, E, F>) -> boolfn ne(&self, other: &Outcome<S, E, F>) -> bool[src]
fn ne(&self, other: &Outcome<S, E, F>) -> boolimpl<S: Clone, E: Clone, F: Clone> Clone for Outcome<S, E, F>[src]
impl<S: Clone, E: Clone, F: Clone> Clone for Outcome<S, E, F>fn clone(&self) -> Outcome<S, E, F>[src]
fn clone(&self) -> Outcome<S, E, F>fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl<S: Copy, E: Copy, F: Copy> Copy for Outcome<S, E, F>[src]
impl<S: Copy, E: Copy, F: Copy> Copy for Outcome<S, E, F>impl<S: Ord, E: Ord, F: Ord> Ord for Outcome<S, E, F>[src]
impl<S: Ord, E: Ord, F: Ord> Ord for Outcome<S, E, F>fn cmp(&self, other: &Outcome<S, E, F>) -> Ordering[src]
fn cmp(&self, other: &Outcome<S, E, F>) -> Orderingfn max(self, other: Self) -> Self1.21.0[src]
fn max(self, other: Self) -> SelfCompares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self1.21.0[src]
fn min(self, other: Self) -> SelfCompares and returns the minimum of two values. Read more
impl<S: Eq, E: Eq, F: Eq> Eq for Outcome<S, E, F>[src]
impl<S: Eq, E: Eq, F: Eq> Eq for Outcome<S, E, F>impl<S: PartialOrd, E: PartialOrd, F: PartialOrd> PartialOrd<Outcome<S, E, F>> for Outcome<S, E, F>[src]
impl<S: PartialOrd, E: PartialOrd, F: PartialOrd> PartialOrd<Outcome<S, E, F>> for Outcome<S, E, F>fn partial_cmp(&self, other: &Outcome<S, E, F>) -> Option<Ordering>[src]
fn partial_cmp(&self, other: &Outcome<S, E, F>) -> Option<Ordering>fn lt(&self, other: &Outcome<S, E, F>) -> bool[src]
fn lt(&self, other: &Outcome<S, E, F>) -> boolfn le(&self, other: &Outcome<S, E, F>) -> bool[src]
fn le(&self, other: &Outcome<S, E, F>) -> boolfn gt(&self, other: &Outcome<S, E, F>) -> bool[src]
fn gt(&self, other: &Outcome<S, E, F>) -> boolfn ge(&self, other: &Outcome<S, E, F>) -> bool[src]
fn ge(&self, other: &Outcome<S, E, F>) -> boolimpl<S, E, F> Display for Outcome<S, E, F>[src]
impl<S, E, F> Display for Outcome<S, E, F>impl<S, E, F> Debug for Outcome<S, E, F>[src]
impl<S, E, F> Debug for Outcome<S, E, F>impl<S: Hash, E: Hash, F: Hash> Hash for Outcome<S, E, F>[src]
impl<S: Hash, E: Hash, F: Hash> Hash for Outcome<S, E, F>fn hash<__HSEF: Hasher>(&self, state: &mut __HSEF)[src]
fn hash<__HSEF: Hasher>(&self, state: &mut __HSEF)fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
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]
impl<S, E, F> Try for Outcome<S, E, F>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 into_result(self) -> Result<Self::Ok, Self::Error>fn from_error(val: Self::Error) -> Self[src]
fn from_error(val: Self::Error) -> Selffn from_ok(val: Self::Ok) -> Self[src]
fn from_ok(val: Self::Ok) -> SelfAuto Trait Implementations
impl<S, E, F> Send for Outcome<S, E, F> where
E: Send,
F: Send,
S: Send,
impl<S, E, F> Send for Outcome<S, E, F> where
E: Send,
F: Send,
S: Send, impl<S, E, F> Sync for Outcome<S, E, F> where
E: Sync,
F: Sync,
S: Sync,
impl<S, E, F> Sync for Outcome<S, E, F> where
E: Sync,
F: Sync,
S: Sync, Blanket Implementations
impl<T> ToString for T where
T: Display + ?Sized, [src]
impl<T> ToString for T where
T: Display + ?Sized, impl<T> From for T[src]
impl<T> From for Timpl<T, U> Into for T where
U: From<T>, [src]
impl<T, U> Into for T where
U: From<T>, impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, impl<T, U> TryFrom for T where
T: From<U>, [src]
impl<T, U> TryFrom for T where
T: From<U>, type Error = !
try_from)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>impl<T> Borrow for T where
T: ?Sized, [src]
impl<T> Borrow for T where
T: ?Sized, impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Any for T where
T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src]
fn get_type_id(&self) -> TypeIdimpl<T, U> TryInto for T where
U: TryFrom<T>, [src]
impl<T, U> TryInto for T where
U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
try_from)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>impl<T> BorrowMut for T where
T: ?Sized, [src]
impl<T> BorrowMut for T where
T: ?Sized, fn borrow_mut(&mut self) -> &mut T[src]
fn borrow_mut(&mut self) -> &mut Timpl<T> Typeable for T where
T: Any, [src]
impl<T> Typeable for T where
T: Any,