3个不稳定版本

0.2.0 2022年8月29日
0.1.1 2022年8月22日
0.1.0 2022年8月21日

#549 in Unix API

MIT许可证

20KB
339

apipe

简单的匿名UNIX管道类型。

使用方法

try_from(&str)

创建管道最简单的方法是通过解析命令字符串

use apipe::CommandPipe;

let mut pipe = CommandPipe::try_from(r#"echo "This is a test." | grep -Eo \w\w\sa[^.]*"#)?;
let output = pipe.spawn_with_output()?;
    
assert_eq!(output.stdout(), "is a test\n".as_bytes());

这需要启用parser功能。

管道命令对象

创建单个命令,然后从它们构造管道

use apipe::Command;

let mut pipe = Command::parse_str(r#"echo "This is a test.""#)?
             | Command::parse_str(r#"grep -Eo \w\w\sa[^.]*"#)?;

// or:

let mut pipe = Command::new("echo").arg("This is a test.")
             | Command::new("grep").args(&["-Eo", r"\w\w\sa[^.]*"]);
                 
let output = pipe.spawn_with_output()?;
    
assert_eq!(output.stdout(), "is a test\n".as_bytes());

Command也可以手动构造,如果您想的话

let mut command = Command::new("ls").arg("-la");

构建器

还有传统的构建器语法

use apipe::CommandPipe;

let output = apipe::CommandPipe::new()
    .add_command("echo")
    .arg("This is a test.")
    .add_command("grep")
    .args(&["-Eo", r"\w\w\sa[^.]*"])
    .spawn_with_output()?;

assert_eq!(output.stdout(), "is a test\n".as_bytes());

依赖关系

~0–495KB