3 releases
Uses old Rust 2015
0.1.2 | Apr 12, 2016 |
---|---|
0.1.1 | Feb 5, 2016 |
0.1.0 | Feb 4, 2016 |
#83 in #warnings
Used in 5 crates
(3 directly)
14KB
281 lines
w_result
This Rust crate defines WResult
, a result type that carries warnings.
Sometimes it may be possible for an operation to proceed despite encountering
errors. In these cases it's useful to notify the caller about these errors in
case they need to act on them. For this, functions can return a WResult
.
enum WResult<T, W, E> {
WOk(T, Vec<W>),
WErr(e),
}
WResult
is similar to Result
except that the ok variant carries a vector of
warnings alongside it's value. The advantages over just using
Result<(T, Vec<W>), E>
are
- Clarity.
- Some
WResult
methods will automatically accumulate warnings from multipleWResult
s (See for exampleand
and theFromIterator<WResult<..>>
impl).
Conversion to Result
Often, the only thing you'll want to do with a WResult
is convert it to a
Result
. WResult
provides several methods for doing this that differ in how
they handle the warnings:
WResult::result_log(self) -> Result<T, E>
converts to aResult
by logging the warnings using thelog
crate.WResult::result_discard(self) -> Result<T, E>
converts toResult
by discarding the warnings.WResult::result_werr(self) -> Result<T, E>
converts toResult
by treating warnings as errors. If there are warnings, the first warning is returned as the error. This method only exists if the warning and error types are the same type.WResult::result_werr_res(self) -> Result<T, Result<W, E>>
is similar toresult_werr
but allows the warning and error types to be two different types.
Dependencies
~165KB