Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/upsuper/tuple-transpose

Transpose tuple of results and options to result and option of tuple
https://github.com/upsuper/tuple-transpose

Last synced: about 5 hours ago
JSON representation

Transpose tuple of results and options to result and option of tuple

Awesome Lists containing this project

README

        

# tuple-transpose

[![Build Status](https://dev.azure.com/upsuper/upsuper/_apis/build/status/tuple-transpose?branchName=master)](https://dev.azure.com/upsuper/upsuper/_build/latest?definitionId=3&branchName=master)
[![Crates.io](https://img.shields.io/crates/v/tuple-transpose.svg)](https://crates.io/crates/tuple-transpose)

Transpose a tuple of results or options to result or option of tuple.

## Examples

```rust
// Result
assert_eq!((Ok::<_, ()>(1u32), Ok(2.0f32)).transpose(), Ok((1u32, 2.0f32)));
assert_eq!((Ok(1u32), Err::(2.0f32)).transpose(), Err(2.0f32));
assert_eq!((Err::(1u32), Ok(2.0f32)).transpose(), Err(1u32));

// Option
assert_eq!((Some(1u32), Some(2.0f32)).transpose(), Some((1u32, 2.0f32)));
assert_eq!((Some(1u32), None::).transpose(), None::<(u32, f32)>);
assert_eq!((None::, Some(2.0f32)).transpose(), None::<(u32, f32)>);
```