6 stable releases
1.1.4 | May 3, 2023 |
---|---|
1.0.3 | Apr 8, 2023 |
#583 in Rust patterns
22 downloads per month
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.