4个版本
0.1.3 | 2022年9月22日 |
---|---|
0.1.2 | 2022年9月22日 |
0.1.1 | 2022年9月22日 |
0.1.0 | 2022年9月22日 |
#2376 in Rust模式
858 每月下载量
105KB
1.5K SLoC
not_empty
静态保证不为空的切片和向量。
此crate特别适用于各种切片或向量的操作,这些操作现在返回值而没有性能损失。
使用方法
此crate位于crates.io,您可以通过将not_empty
添加到项目Cargo.toml
中的依赖项来使用它。
[dependencies]
not_empty = "0.1"
文档
在docs.rs
上查看完整参考这里。
功能
alloc
通过alloc crate启用分配类型的使用。serde
通过serde
crate启用对任何not_empty
类型的序列化和反序列化。std
启用标准库的使用。
注意:如果同时启用了alloc
和std
功能,则会抛出编译器错误。只能选择其中一个。
默认情况下,只启用了std
功能。
动机
有其他包解决了这个问题。在寻找自己的解决方案时,我主要遇到了两个其他包
nonempty
只支持向量,并且没有优雅地处理迭代器的解决方案。此外,其导出的NonEmpty
类型与其他切片或向量之间的互操作性在架构支持方面还有很多不足。为了严格起见,我对NonEmpty
类型比标准向量对于非零大小类型更大的事实感到厌烦。non-empty-vec
没有扩大类型,这很好,但它也没有满足我的互操作性需求。
许可
根据以下任一许可授权:
- Apache许可证,版本2.0(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
由你选择。
贡献
除非你明确声明,否则根据Apache-2.0许可证定义,你有意提交以包含在工作中的任何贡献,将按上述方式双授权,不附加任何额外条款或条件。
依赖
约170KB