#map #call #function

nightly loosen_map

通过self调用函数

2个版本

0.1.1 2019年4月13日
0.1.0 2019年4月7日

#118 in #call

MIT许可协议

3KB

LoosenMap

通过self调用函数。
a.loose_map(b) = b(a)

声明一个类似于std::iter::Iterator::map的特质/方法,其中任何作为函数唯一参数的类型都可以调用该函数。

ps. 我称这种“映射到该函数”但不知道是否正确。

Loosen示例

这是使用loosen属性派生宏的用法示例。

use loosen::loose;
use loosen_map::LooseMap;
#
# struct A;
# struct B;
 
#[loose]
fn fa(a: A, b: B) -> bool { true }

// normal call
assert!(fa(A, B));

// loose call, available from the `loosen` crate
assert!(fa_loose((A, B)));

// loose_map with loose call
assert!((A, B).loose_map(fa_loose));
// ie. from the argument (or loosened arguments),
// you may call some function (or loosened function)

无运行时依赖