Provides many useful tools related to tuples
rust
let a = (1, 2, 3);
let b = a.map(|v| v * 3);
assert_eq!(b, (3, 6, 9));
rust
let a = (1, 2, 3, 4, 5);
let b = a.map3(|v| v * 5);
assert_eq!(b, (1, 2, 3, 20, 5));
rust
let t = (5, 6, 7);
let (a, b, c) = t.as_ref();
assert_eq!(*a, 5);
assert_eq!(*b, 6);
assert_eq!(*c, 7);
meta ```rust let a = (1, 2, 3, 4, 5); assert_eq!(a.arity(), 5);
let b = (); assert_eq!(b.arity(), 0); ```
rust
let a = (1, 2, 3)
.into_iter()
.map(|v| v * 3)
.collect_tuple::<tuple![3;]>();
let b: (i32, i32, i32) = (3, 6, 9);
assert_eq!(a, b);
transpose ```rust let a = Some((1, 2, 3)).transpose(); assert_eq!(a, (Some(1), Some(2), Some(3)));
let b = (Some(1), Some(2), Some(3)).transpose(); assert_eq!(b, Some((1, 2, 3))); ```
combin ```rust let a = (1, 2).push(3); assert_eq!(a, (1, 2, 3));
let b = (2, 1).left(3); assert_eq!(b, (3, 2, 1));
let c = (1, 2, 3).concat((4, 5, 6)); assert_eq!(c, (1, 2, 3, 4, 5, 6)) ```