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 |
#73 in Unix APIs
49,706 downloads per month
Used in 85 crates
(51 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::stdout
writer. - Won't work in rust test cases. The rust test cases use
std::io::set_print
to redirect stdout. You can get around this though by using the--nocapture
argument 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
~2–11MB
~131K SLoC