2 个版本 (1 个稳定版)
1.0.0 | 2021 年 7 月 26 日 |
---|---|
0.0.0 | 2021 年 7 月 26 日 |
#1972 在 Rust 模式
6KB
93 行
Tap Trait
在不离开方法链的情况下检查和修改值。
示例
use tap_trait::Tap;
use pipe_trait::Pipe;
let result = 2i32
.tap(|x| assert_eq!(x, 2))
.tap_mut(|x| *x += 1)
.tap(|x| assert_eq!(x, 3))
.tap_mut(|x| *x *= 3)
.tap(|x| assert_eq!(x, 9))
.pipe(|x| -x)
.tap(|x| assert_eq!(x, -9))
.pipe_ref(ToString::to_string)
.tap_ref(|x| assert_eq!(x, "-9"))
.tap_mut(|x| *x += ".0")
.tap_ref(|x| assert_eq!(x, "-9.0"));
assert_eq!(result, "-9.0");
许可证
lib.rs
:
在不离开方法链的情况下检查和修改值。
示例
use tap_trait::Tap;
use pipe_trait::Pipe;
let result = 2i32
.tap(|x| assert_eq!(x, 2))
.tap_mut(|x| *x += 1)
.tap(|x| assert_eq!(x, 3))
.tap_mut(|x| *x *= 3)
.tap(|x| assert_eq!(x, 9))
.pipe(|x| -x)
.tap(|x| assert_eq!(x, -9))
.pipe_ref(ToString::to_string)
.tap_ref(|x| assert_eq!(x, "-9"))
.tap_mut(|x| *x += ".0")
.tap_ref(|x| assert_eq!(x, "-9.0"));
assert_eq!(result, "-9.0");