#tuple #split #traits #const #tupleops

nightly no-std tuple_split

tupleops crate 的扩展,添加了一个按索引分割元组的特质的扩展

2 个版本

0.1.1 2023 年 3 月 20 日
0.1.0 2023 年 3 月 20 日

#96 in #tuple

每月 26 次下载
用于 currycompose

MIT 许可证

8KB
66

此 crate 是 tupleops crate 的扩展,它添加了一个按索引分割元组的特质。


lib.rs:

此 crate 是 tupleops crate 的扩展,它添加了一个按索引分割元组的特质。

可能在中间索引 MIDDLE 分割的元组具有 TupleSplit 特质,分割时返回 (TupleSplit::Left, TupleSplit::Right)。

类型别名 LeftRight 分别等于 TupleSplit::LeftTupleSplit::Right,适用于任何在给定 MIDDLE 实现 TupleSplit 的元组。

对于任何可能分割且 TupleSplit::Left = L 的元组,实现了特质别名 SplitLeftInto

对于任何可能分割且 TupleSplit::Right = R 的元组,实现了特质别名 SplitRightInto

对于任何可能分割且 TupleSplit::Left = L 和 TupleSplit::Right = R 的元组,实现了特质别名 SplitInto

use tupleops::concat_tuples;
use tuple_split::*;

let t: (u8, f32, &str) = (1, 1.0, "test");

let (l, r): ((u8, f32), (&str,)) = TupleSplit::<2>::split_tuple(t);

assert_eq!(t, concat_tuples(l, r));

let (l, r): ((u8, f32), (&str,)) = split_tuple::<2, _>(t);

assert_eq!(t, concat_tuples(l, r));

依赖

~1.5MB
~35K SLoC