[−][src]Crate debugless_unwrap
This library provides alternatives to the standard .unwrap
* methods on Result
and Option
that don't require Debug
to be implemented on the unexpected variant.
Example
Given
struct T; let none = Option::<T>::None; let ok = Result::<T, T>::Ok(T); let err = Result::<T, T>::Err(T);
, the following std
methods are unavailable:
ⓘThis example deliberately fails to compile
none.unwrap_none(); // Some(T) isn't Debug.
ⓘThis example deliberately fails to compile
ok.unwrap(); // Err(T) isn't Debug.
ⓘThis example deliberately fails to compile
err.unwrap_err(); // Ok(T) isn't Debug.
The methods in this library can be used in this situation (e.g. when working with generics), but provide less information:
Additionally given
use debugless_unwrap::*;
, the following work like their debugless_
-less equivalents:
none.debugless_unwrap_none();
ok.debugless_unwrap();
err.debugless_unwrap_err();
Traits
DebuglessUnwrap | Provides |
DebuglessUnwrapErr | Provides |
DebuglessUnwrapNone | Provides |