[][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 .debugless_unwrap() on Result.

DebuglessUnwrapErr

Provides .debugless_unwrap_err() on Result.

DebuglessUnwrapNone

Provides .debugless_unwrap_none() on Option.