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
1 changed files with 27 additions and 0 deletions
|
@ -20,6 +20,7 @@ use ffi::OsStr;
|
||||||
use fmt;
|
use fmt;
|
||||||
use io::{self, Error, ErrorKind};
|
use io::{self, Error, ErrorKind};
|
||||||
use path;
|
use path;
|
||||||
|
use str;
|
||||||
use sys::pipe::{self, AnonPipe};
|
use sys::pipe::{self, AnonPipe};
|
||||||
use sys::process as imp;
|
use sys::process as imp;
|
||||||
use sys_common::{AsInner, AsInnerMut, FromInner, IntoInner};
|
use sys_common::{AsInner, AsInnerMut, FromInner, IntoInner};
|
||||||
|
@ -400,6 +401,32 @@ pub struct Output {
|
||||||
pub stderr: Vec<u8>,
|
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.
|
/// Describes what to do with a standard I/O stream for a child process.
|
||||||
#[stable(feature = "process", since = "1.0.0")]
|
#[stable(feature = "process", since = "1.0.0")]
|
||||||
pub struct Stdio(StdioImp);
|
pub struct Stdio(StdioImp);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue