Crate capture_stdio

Source
Expand description

This crate provide some helper functions to capture the stdin/out/err of the current process to help mocking.

In testing, cargo test capture the stdout/err via std::io::set_output_capture. We can use the same mechanism to intercept print! and eprint! output. The crate wraps the call in OutputCapture so that you can intercept the output easily.

The crate also implements a pipe-then-dup method to intercept stdio. In detail, it creates a pipe and replaces the fd of stdio. You can use PipedStdin to intercept stdin, use PipedStdout for stdout and PipedStderr for stderr.

Re-exports§

pub use output_capture::*;
pub use pipe::*;

Modules§

output_capture
Wrapper of std::io::set_output_capture
pipe
Intercept stdio via pipe-then-dup method

Traits§

Capture
Common trait to capture stdio and then restore