6 stable releases
1.1.4 | May 3, 2023 |
---|---|
1.0.3 | Apr 8, 2023 |
#1658 in Rust patterns
40 downloads per month
Used in 2 crates
58KB
780 lines
Tuplify
Utility library that facilitates the use of tuples as generic arguments.
See individual Traits for features implementation and detailled examples.
Examples
Tuples
use tuplify::*;
assert_eq!((1, 2).push_back(3), (1, 2, 3));
assert_eq!((Some(1), Some(2), Some(3)).validate(), Some((1, 2, 3)));
assert_eq!((Some(1), Some(2), None::<i32>).validate(), None);
assert_eq!((1, 2).extend((3, 4)), (1, 2, 3, 4));
assert_eq!((1, 2, 3, 4).pop_back(), (4, (1, 2, 3)));
assert_eq!((1, 2, 3, 4).uncons(), (1, (2, 3, 4)));
Heterogenous list
use tuplify::*;
assert_eq!(hcons![1, 2].push_back(3), hcons![1, 2, 3]);
assert_eq!(hcons![Some(1), Some(2), Some(3)].validate(), Some(hcons![1, 2, 3]));
assert_eq!(hcons![Ok(1), Ok(2), Err::<u32, _>("oh no")].validate(), Err("oh no"));
assert_eq!(hcons![1, 2].extend(hcons![3, 4]), hcons![1, 2, 3, 4]);
assert_eq!(hcons![1, 2, 3, 4].pop_back(), (4, hcons![1, 2, 3]));
assert_eq!(hcons![1, 2, 3, 4].uncons(), (1, hcons![2, 3, 4]));
Contribution
Found a problem or have a suggestion? Feel free to open an issue.