mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Auto merge of #30403 - webmobster:master, r=alexcrichton
I didn't see any reason that debug couldn't be added to this object, since every field derives debug.
This commit is contained in:
commit
67a2d1f34f
@ -20,6 +20,7 @@ use ffi::OsStr;
|
||||
use fmt;
|
||||
use io::{self, Error, ErrorKind};
|
||||
use path;
|
||||
use str;
|
||||
use sys::pipe::{self, AnonPipe};
|
||||
use sys::process as imp;
|
||||
use sys_common::{AsInner, AsInnerMut, FromInner, IntoInner};
|
||||
@ -400,6 +401,32 @@ pub struct Output {
|
||||
pub stderr: Vec<u8>,
|
||||
}
|
||||
|
||||
// If either stderr or stdout are valid utf8 strings it prints the valid
|
||||
// strings, otherwise it prints the byte sequence instead
|
||||
#[stable(feature = "process_output_debug", since = "1.7.0")]
|
||||
impl fmt::Debug for Output {
|
||||
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
||||
|
||||
let stdout_utf8 = str::from_utf8(&self.stdout);
|
||||
let stdout_debug: &fmt::Debug = match stdout_utf8 {
|
||||
Ok(ref str) => str,
|
||||
Err(_) => &self.stdout
|
||||
};
|
||||
|
||||
let stderr_utf8 = str::from_utf8(&self.stderr);
|
||||
let stderr_debug: &fmt::Debug = match stderr_utf8 {
|
||||
Ok(ref str) => str,
|
||||
Err(_) => &self.stderr
|
||||
};
|
||||
|
||||
fmt.debug_struct("Output")
|
||||
.field("status", &self.status)
|
||||
.field("stdout", stdout_debug)
|
||||
.field("stderr", stderr_debug)
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
|
||||
/// Describes what to do with a standard I/O stream for a child process.
|
||||
#[stable(feature = "process", since = "1.0.0")]
|
||||
pub struct Stdio(StdioImp);
|
||||
|
Loading…
Reference in New Issue
Block a user