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 中排名

Download history 130/week @ 2024-03-10 128/week @ 2024-03-17 44/week @ 2024-03-24 96/week @ 2024-03-31 64/week @ 2024-04-07 44/week @ 2024-04-14 112/week @ 2024-04-21 159/week @ 2024-04-28 81/week @ 2024-05-05 83/week @ 2024-05-12 198/week @ 2024-05-19 51/week @ 2024-05-26 107/week @ 2024-06-02 50/week @ 2024-06-09 32/week @ 2024-06-16 89/week @ 2024-06-23

每月下载量 287

MIT/Apache 协议

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_24tuple_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:?}");

依赖项