12 releases (1 stable)
Uses old Rust 2015
| 1.0.0 | May 30, 2021 |
|---|---|
| 0.1.10 | Apr 20, 2018 |
| 0.1.9 | Jan 19, 2016 |
| 0.1.6 | May 1, 2015 |
| 0.1.5 | Apr 15, 2015 |
#127 in Unix APIs
230,719 downloads per month
Used in 141 crates
(83 directly)
13KB
202 lines
Redirect and/or gag stdout/stderr.
Documentation (with examples): https://docs.rs/gag/
Limitations
- Won't work if something else has called
std::io::set_print(currently unstable). Unfortunately, this function doesn't actually redirect the stdio file descriptor, it just replaces thestd::io::stdoutwriter. - Won't work in rust test cases. The rust test cases use
std::io::set_printto redirect stdout. You can get around this though by using the--nocaptureargument when running your tests.
TODO:
- General:
- Better error handling?
- Redirect:
- Be generic over references. That is, accept both a reference to an AsRawFd or
an AsRawFd. Unfortunately, I don't know if this is even possible. Borrow
doesn't work because I really want the following constraint:
impl<F> Redirect<F> where F: BorrowMut<T>, T: AsMut<AsRawFd>so I can writefile.borrow_mut().as_mut()but that would be ambiguous...
- Be generic over references. That is, accept both a reference to an AsRawFd or
an AsRawFd. Unfortunately, I don't know if this is even possible. Borrow
doesn't work because I really want the following constraint:
- Buffer:
- Deallocate the buffer as it is read (FALLOC_FL_PUNCH_HOLE) if possible.
Dependencies
~1.8–7.5MB
~166K SLoC