5 个版本
0.1.4 | 2023年5月6日 |
---|---|
0.1.3 | 2023年3月27日 |
0.1.2 | 2023年3月19日 |
0.1.1 | 2021年12月28日 |
0.1.0 | 2021年12月15日 |
#514 在 编码
每月681次下载
350KB
11K SLoC
Rangetools
扩展 std::ops 中 Rust Range 结构的特质
用法
将此添加到您的 Cargo.toml
[dependencies]
rangetools = "0.1"
如何在您的crate中使用
use rangetools::Rangetools;
此库提供了所有 std::ops
范围类型以及此crate中引入的任何类型的新方法,以管理这些方法的输出。
let i = (0..5).intersection(3..);
assert!(i.contains(4));
let i2 = (0..5).intersection(5..10);
assert!(i2.is_empty());
尽可能的情况下(当结果是下界时),这些操作的结果类型实现 IntoIterator
,以便对这些类型执行更多操作。
let u1 = (1..3).union(5..7);
assert_eq!(u1.into_iter().collect::<Vec<_>>(), vec![1, 2, 5, 6]);
let u2 = (1..3).union(10..);
assert_eq!(u2.into_iter().take(5).collect::<Vec<_>>(), vec![1, 2, 10, 11, 12]);
let c = (1..3).complement();
let i = c.into_iter(); // Compiler error! The result has no lower bound
// and thus cannot be iterated over.
功能
提供 serde 的功能特性,提供 serde 的 Serialize 和 Deserialize 特质的 derive 特性。
许可证
根据您的选择,在 Apache License,Version 2.0 或 MIT 许可证下许可。
依赖项
~180KB