pub trait TransposeOption {
    type Output;

    fn transpose_opt(self) -> Option<Self::Output>;
}
Available on crate feature option_result only.
Expand description

Converts a type containing options into an option containing the type

Example

use core_extensions::TransposeOption;
 
assert_eq!((Some(3), Some(5)).transpose_opt(), Some((3, 5)));
assert_eq!((Some(3), None::<u32>).transpose_opt(), None);

let ok_some: Result<Option<u32>, ()> = Ok(Some(8));
let ok_none: Result<Option<u32>, ()> = Ok(None);
let err: Result<Option<u32>, ()> = Err(());

assert_eq!(ok_some.transpose_opt(), Some(Ok(8)));
assert_eq!(ok_none.transpose_opt(), None);
assert_eq!(err.transpose_opt(), Some(Err(())));

Required Associated Types

The type in which the Options are unwrapped.

Required Methods

Performs the conversion

Implementations on Foreign Types

Implementors