Enum w_result::WResult
[−]
[src]
#[must_use]
pub enum WResult<T, W, E> {
WOk(T, Vec<W>),
WErr(E),
}A result type that carries warnings.
Variants
WOk | Contains the success value along with any accumulated warnings. | |
WErr | Contains the error value. |
Methods
impl<T, W, E> WResult<T, W, E>
fn is_ok(&self) -> bool
Returns true if this WResult is WOk
fn is_err(&self) -> bool
Returns true if this WResult is WErr
fn is_warn_or_err(&self) -> bool
Returns true if this WResult is WErr or if it is WOk but contains warnings.
fn ok_discard(self) -> Option<T>
Converts this WResult to an Option by taking the taking the WOk value or mapping
WErr to None. Any warnings are discarded.
fn err(self) -> Option<E>
Converts this WResult to an Option by taking the WErr variant or mapping WOk to
None.
fn ok_werr(self) -> Option<T>
Converts this WResult to an Option by taking the WOk variant or mapping WErr to
None. This function is similar to ok_discard except if there are any warnings then they
are treated as errors and this function returns None.
fn map<U, F>(self, op: F) -> WResult<U, W, E> where F: FnOnce(T) -> U
Map the WOk value of this WResult, if any.
fn map_err<U, F>(self, op: F) -> WResult<T, W, U> where F: FnOnce(E) -> U
Map the WErr value of this WResult, if any.
fn map_warnings<U, F>(self, op: F) -> WResult<T, U, E> where F: FnMut(W) -> U
Map the warnings of this WResult.
fn and<U>(self, res: WResult<U, W, E>) -> WResult<U, W, E>
If self is WOk, returns res with the warnings from self accumulated into the final
result. Otherwise returns the WErr value of self.
fn and_then<U, V, F>(self, op: F) -> WResult<U, V, E> where F: FnOnce(T, Vec<W>) -> WResult<U, V, E>
If self is WOk, returns the result of applying op to self's value and warnings.
Otherwise returns the WErr value of self.
fn or<U>(self, res: WResult<T, W, U>) -> WResult<T, W, U>
If self is WOk returns self. Otherwise returns res.
fn or_else<U, F>(self, op: F) -> WResult<T, W, F> where F: FnOnce(E) -> WResult<T, W, F>
If self is WOk returns self. Otherwise returns the result of applying op to
self's error value.
fn result_discard(self) -> Result<T, E>
Convert this WResult<T, W, E> to a Result<T, E>, discarding any errors. See also
result_log for a version of this function that logs warnings.
fn result_werr_res(self) -> Result<T, Result<W, E>>
Convert this WResult<T, W, E> to a Result<T, Result<W, E>>. This is a way to convert
from WResult to Result, treating warnings as errors but allowing W and E to be two
different types. See also result_werr for when W and E are the same type. If there
are multiple warnings the first is returned.
fn unwrap_discard_or(self, optb: T) -> T
If self is WOk, unwraps it discarding any warnings. Otherwise returns optb. See also
unwrap_log_or for a version of this function that logs warnings.
fn unwrap_or_werr(self, optb: T) -> T
If self is WOk and has no warnings, unwraps it. Otherwise returns optb.
fn unwrap_discard_or_else<F>(self, op: F) -> T where F: FnOnce(E) -> T
If self is WOk, unwraps it discarding any warnings. Otherwise returns the result of
applying op to self's error value. See also unwrap_log_or_else for a version of this
function that logs warnings.
impl<T, E> WResult<T, E, E>
fn err_werr(self) -> Option<E>
Take the error value of this WResult, if any. Otherwise returns the first warning, if
any. This function is the same as WResult::err except that warnings are treated as
errors.
fn result_werr(self) -> Result<T, E>
Convert this WResult to a Result but treat warnings as errors. If there are multiple
warnings the first is returned.
fn unwrap_or_else_werr<F>(self, op: F) -> T where F: FnOnce(E) -> T
If self is WOk and has no warnings then unwrap it. Otherwise return the result of
applying op to self's error or first warning.
impl<T, W, E> WResult<T, W, E> where W: Display
fn ok_log(self) -> Option<T>
Take the WOk value of self, if any. Warnings are logged using the warn! macro before
being discarded.
fn result_log(self) -> Result<T, E>
Convert this WResult<T, W, E> to a Result<T, E>. Warnings are logged using the warn!
macro before being discarded.
fn unwrap_log_or(self, optb: T) -> T
If self is WOk, unwrap it and log any warnings using the warn! macro. Otherwise
return optb.
fn unwrap_log_or_else<F>(self, op: F) -> T where F: FnOnce(E) -> T
If self is WOk, unwrap it and log any warnings using the warn! macro. Otherwise
return the result of applying op to self's error value.