2 个稳定版本
1.0.1 | 2020 年 5 月 14 日 |
---|---|
1.0.0 | 2019 年 12 月 20 日 |
在 Rust 模式 中排名 1989
每月下载 22 次
用于 rubot
5KB
Tapir
一个简单的 Rust 库,为所有类型添加点击功能。
tap
操作会完全拥有一个变量的所有权,使用给定变量的可变引用调用给定的函数,然后返回该变量的完全所有权。这允许在不声明变量为可变的情况下轻松进行修改。
此库部分受到 tap-rs 的启发。
示例
fn get_unsorted_values() -> Vec<u32> {
vec![42, 7, 1337, 69]
}
fn use_sorted_values(values: &[u32]) {
assert_eq!(&[7, 42, 69, 1337], values);
}
// without tap one often needs mutable variables
let mut old = get_unsorted_values();
old.sort();
use_sorted_values(&old);
// using tap, this can be simplified
use tapir::Tap;
let tapped = get_unsorted_values().tap(|v| v.sort());
use_sorted_values(&tapped);
lib.rs
:
一个公开 Tap
特性的 crate,这使得方法链式调用更加容易。
查看 Tap
获取更详细的文档。
示例
use tapir::Tap;
fn smallest_factor(x: u32) -> u32 {
for i in 2..x {
if x % i == 0 {
return i;
}
}
x
}
let smallest_factors: Vec<u32> = (2..25).map(smallest_factor).collect();
let unique_primes = smallest_factors.tap(|v| v.sort()).tap(Vec::dedup);
assert_eq!(unique_primes, [2, 3, 5, 7, 11, 13, 17, 19, 23]);