[−][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) -> S
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]
pub fn expect(self, message: &str) -> S
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]
pub fn is_success(&self) -> bool
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]
pub fn is_failure(&self) -> bool
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]
pub fn is_forward(&self) -> bool
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]
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: 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>) -> Ordering
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.21.0[src]
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. 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: 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>
Returns a copy of the value. Read more
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: 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>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn lt(&self, other: &Outcome<S, E, F>) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn le(&self, other: &Outcome<S, E, F>) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn gt(&self, other: &Outcome<S, E, F>) -> bool
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn ge(&self, other: &Outcome<S, E, F>) -> bool
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. 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: 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>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Outcome<S, E, F>) -> bool
[src]
fn ne(&self, other: &Outcome<S, E, F>) -> bool
This method tests for !=
.
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)
Feeds this value into the given [Hasher
]. Read more
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> Display for Outcome<S, E, F>
[src]
impl<S, E, F> Display for Outcome<S, E, F>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<S, E, F> Debug for Outcome<S, E, F>
[src]
impl<S, E, F> Debug for Outcome<S, E, F>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. 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>
try_trait
)Applies the "?" operator. A return of Ok(t)
means that the execution should continue normally, and the result of ?
is the value t
. A return of Err(e)
means that execution should branch to the innermost enclosing catch
, or return from the function. Read more
fn from_error(val: Self::Error) -> Self
[src]
fn from_error(val: Self::Error) -> Self
try_trait
)Wrap an error value to construct the composite result. For example, Result::Err(x)
and Result::from_error(x)
are equivalent. Read more
fn from_ok(val: Self::Ok) -> Self
[src]
fn from_ok(val: Self::Ok) -> Self
try_trait
)Wrap an OK value to construct the composite result. For example, Result::Ok(x)
and Result::from_ok(x)
are equivalent. Read more
Auto 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> From for T
[src]
impl<T> From for T
impl<T> ToString for T where
T: Display + ?Sized,
[src]
impl<T> ToString for T where
T: Display + ?Sized,
impl<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,
type Owned = T
fn to_owned(&self) -> T
[src]
fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
fn clone_into(&self, target: &mut T)
[src]
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
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>
try_from
)Performs the conversion.
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) -> TypeId
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
Gets the TypeId
of self
. Read more
impl<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>
try_from
)Performs the conversion.
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 T
Mutably borrows from an owned value. Read more
impl<T> Typeable for T where
T: Any,
impl<T> Typeable for T where
T: Any,