| Crates.io | w_result |
| lib.rs | w_result |
| version | 0.1.2 |
| created_at | 2016-02-04 09:39:14.081966+00 |
| updated_at | 2016-04-12 08:03:39.190288+00 |
| description | A result type that carries warnings |
| homepage | |
| repository | |
| max_upload_size | |
| id | 4075 |
| size | 13,225 |
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
WResult methods will automatically accumulate warnings from multiple
WResults (See for example and and the FromIterator<WResult<..>> impl).ResultOften, 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 a Result by
logging the warnings using the log crate.WResult::result_discard(self) -> Result<T, E> converts to Result by
discarding the warnings.WResult::result_werr(self) -> Result<T, E> converts to Result 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 to
result_werr but allows the warning and error types to be two different
types.