#fun #chain #call

have

让任何类型都有些乐趣

2 个版本

0.1.1 2021 年 1 月 25 日
0.1.0 2021 年 1 月 22 日

#91 in #chain


用于 rhit

MIT 许可证

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>();

无运行时依赖