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
Required Methods
sourcefn transpose_opt(self) -> Option<Self::Output>
fn transpose_opt(self) -> Option<Self::Output>
Performs the conversion