5 个不稳定版本
0.3.0 | 2022 年 6 月 29 日 |
---|---|
0.2.0 | 2022 年 6 月 29 日 |
0.1.2 | 2022 年 6 月 28 日 |
0.1.1 | 2022 年 6 月 27 日 |
0.1.0 | 2022 年 6 月 27 日 |
13 在 #structural 中排名
每月下载量 287
10KB
137 行(不包括注释)
元组的结构操作
此软件包实现了三个元组操作
- 连接
- 拆分
- 索引
例如,您可以使用以下方法简单地将两个元组连接起来
use tuplestructops::TupleJoin;
let concat = (1, 'b', 3).join(('a', 5, 'c'));
此软件包仅关注元组的整体结构,而对其元素的类型完全无知。
实现的时间复杂度是元组元素数量的 O(N^2)。默认情况下,它们为最多 16 个元素实现,但额外的
- tuple_24
- tuple_32
功能允许为更多元素实现这些特性。
impl_docs
功能启用对所有元组类型特性实现的文档。默认情况下,它是禁用的,因为它非常重复。
lib.rs
:
元组的结构操作
此软件包实现了拆分和连接元组。
这些特性适用于从长度为零(即,()
单元)到 16 的元组。(启用 tuple_24
和 tuple_32
功能后,可以更多。)
它们适用于按值和引用传递的元组,分别消耗或借用它们的输入。
以下是一个按值传递的 TupleJoin
示例
use tuplestructops::TupleJoin;
let out = (1,'a',"b").join((1., 2.));
println!("out {out:?}");
TupleSplit
执行相反的操作。它依赖于模式匹配来确定拆分。
use tuplestructops::TupleSplit;
let out: (_, (_,_,_)) = (1,2,3,4,5).split();
println!("out {out:?}");