12 个版本 (1 个稳定版本)
使用旧的 Rust 2015
1.0.0 | 2021年5月30日 |
---|---|
0.1.10 | 2018年4月20日 |
0.1.9 | 2016年1月19日 |
0.1.6 | 2015年5月1日 |
0.1.5 | 2015年4月15日 |
#80 在 Unix APIs 中
35,425 每月下载量
在 82 个 crate 中使用 (48 个直接使用)
13KB
202 行
重定向和/或哑铃 stdout/stderr。
文档(含示例): https://docs.rs/gag/
限制
- 如果已调用其他函数设置了
std::io::set_print
(目前不稳定),则无法正常工作。遗憾的是,此函数实际上并没有重定向 stdio 文件描述符,它只是替换了std::io::stdout
写入器。 - 在 rust 测试用例中无法工作。rust 测试用例使用
std::io::set_print
重定向 stdout。不过,您可以在运行测试时使用--nocapture
参数来解决这个问题。
待办事项
- 通用
- 更好的错误处理?
- 重定向
- 泛型引用。也就是说,接受 AsRawFd 或 AsRawFd 的引用。遗憾的是,我不知道这是否可能。借用无法工作,因为我真的想有以下的约束:
impl<F> Redirect<F> where F: BorrowMut<T>, T: AsMut<AsRawFd>
因此我可以写file.borrow_mut().as_mut()
但这将是模糊的...
- 泛型引用。也就是说,接受 AsRawFd 或 AsRawFd 的引用。遗憾的是,我不知道这是否可能。借用无法工作,因为我真的想有以下的约束:
- 缓冲区
- 如果可能,则在读取时释放缓冲区(FALLOC_FL_PUNCH_HOLE)。
依赖关系
~2–11MB
~126K SLoC