1 个不稳定版本

0.1.0 2023年11月13日

#36 in #数据处理管道

MIT 许可协议

7KB
62 行代码(不包括注释)

ArrowPipe:轻松构建复杂的管道

Arrow 是一个函数组合系统,可用于创建复杂的数据处理管道。

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
arrowpipe = { git = "https://github.com/Brian3647/arrowpipe" }

示例

use arrowpipe::Arrow;

fn add_one(x: i32) -> i32 {
   x + 1
}

fn double(x: i32) -> i32 {
  x * 2
}

let mut arrow = Arrow::new(add_one);
arrow.symbiotize(Arrow::new(double));
arrow.symbiotize(Arrow::new(|x| x - 1));

assert_eq!(arrow.shoot(1), 3);

执行顺序示例

use arrowpipe::Arrow;

fn add_one(x: i32) -> i32 {
   x + 1
}

let mut first = Arrow::new(add_one); // Second: 2 -> 3
first.symbiotize(Arrow::new(|x| x * 2)); // Third: 3 -> 6

let mut second = Arrow::new(add_one); // First: 1 -> 2
second.symbiotize(first);

assert_eq!(second.shoot(1), 6);

为什么?

这对于像构建系统这样的长管道特别有用。使用 Arrow 结构,您可以简单地向现有管道添加另一个 Arrow 以添加新步骤。

许可协议

本项目采用 MIT 许可协议 (LICENSEhttp://opensource.org/licenses/MIT)。

无运行时依赖