2 个不稳定版本

使用旧的 Rust 2015

0.2.0 2017 年 6 月 12 日
0.1.0 2017 年 6 月 11 日

#2997Rust 模式

自定义许可

27KB
700

排序

一个 Rust 库,提供排序序列的编译时合约。

MIT 许可证 下分发。

文档

状态

Latest version on crates.io Build Status

这个库目前正在编写中,目前不适合任何使用。

理由

通过将排序类型限制为保持排序顺序的操作,可以在编译时提供保证。甚至不同的排序顺序也可以类型化,并禁止混合使用由不同键或比较排序的集合。

为什么

如果你在代码的许多地方处理大量的排序和未排序的数组、向量或迭代器,那么很容易出错,将元素添加到错误的位置,或者在不应该使用未排序列表的地方使用排序列表。编译时保证可以帮助你避免这些情况中的错误和明确意图。

尽管如此,这个库不会为你的代码提供任何实际的功能,除了几个保持排序合约的便利方法。如果你不需要长时间或大量地保持数组类型排序,这个库可能就过度了。

如何

这个库实现了一系列约束类型包装器,限制 Vec 和切片的可变操作为保留排序顺序的操作。非可变操作仍然通过 Deref 提供。这些排序类型只能通过排序常规序列或复制另一个排序类型来创建。

示例

请参阅 tests/usage.rs 了解如何使用排序类型。

无运行时依赖

功能