2 个不稳定版本
使用旧的 Rust 2015
0.2.0 | 2017 年 6 月 12 日 |
---|---|
0.1.0 | 2017 年 6 月 11 日 |
#2997 在 Rust 模式
27KB
700 行
排序
一个 Rust 库,提供排序序列的编译时合约。
在 MIT 许可证 下分发。
状态
这个库目前正在编写中,目前不适合任何使用。
理由
通过将排序类型限制为保持排序顺序的操作,可以在编译时提供保证。甚至不同的排序顺序也可以类型化,并禁止混合使用由不同键或比较排序的集合。
为什么
如果你在代码的许多地方处理大量的排序和未排序的数组、向量或迭代器,那么很容易出错,将元素添加到错误的位置,或者在不应该使用未排序列表的地方使用排序列表。编译时保证可以帮助你避免这些情况中的错误和明确意图。
尽管如此,这个库不会为你的代码提供任何实际的功能,除了几个保持排序合约的便利方法。如果你不需要长时间或大量地保持数组类型排序,这个库可能就过度了。
如何
这个库实现了一系列约束类型包装器,限制 Vec 和切片的可变操作为保留排序顺序的操作。非可变操作仍然通过 Deref 提供。这些排序类型只能通过排序常规序列或复制另一个排序类型来创建。
示例
请参阅 tests/usage.rs 了解如何使用排序类型。