2 个版本
0.1.1 | 2021 年 1 月 25 日 |
---|---|
0.1.0 | 2021 年 1 月 22 日 |
#91 in #chain
用于 rhit
3KB
允许在调用链中向任何类型插入一个函数
any_type
.fun(|o| do_something_with(o))
.other_things();
更详细的示例
use {
have::Fun,
itertools::*,
};
fn analyze(log_lines: Vec<LogLine>) {
log_lines
.iter()
.into_group_map_by(|ll| ll.remote_addr)
.fun(|g| println!("{} distinct remote_addresses", g.len()))
.into_iter()
.sorted_by_key(|e| Reverse(e.1.len()))
.take(3)
.for_each(|e| println!("{} hits by remote addresse {}", e.1.len(), e.0));
}
删除此包
我刚刚发现已经有另一个包以相同的方式进行完全相同的操作,并增加了额外功能:[tap](https://crates.org.cn/crates/tap)。
我认为没有理由不使用最老的包。除非在 tap 包中遇到意外问题,我建议在构建新项目时选择它而不是我的包。
用法
[dependencies]
have = "0.1"
lib.rs
:
让任何类型都有些乐趣。
当你想在链中插入一些函数调用而不重新排序或创建中间变量时,这很方便。
use have::Fun;
let sum = [1, 2, 3]
.fun(|v| println!("v is size {}", v.len()))
.iter()
.sum::<usize>();