diff options
| author | Jonas Berlin <xkr47@outerspace.dyndns.org> | 2020-07-09 21:18:06 +0300 |
|---|---|---|
| committer | Mark Rousskov <mark.simulacrum@gmail.com> | 2020-08-14 08:25:45 -0400 |
| commit | 90e4c905d352dc5c5de71af717200c879fec88f7 (patch) | |
| tree | 5a8255d0817d27b0bf8301919dea850d5bf3a742 | |
| parent | 81dc88f88f92ba8ad7465f9cba10c12d3a7b70f1 (diff) | |
| download | rust-90e4c905d352dc5c5de71af717200c879fec88f7.tar.gz rust-90e4c905d352dc5c5de71af717200c879fec88f7.zip | |
Improve documentation on process::Child.std* fields
As a relative beginner, it took a while for me to figure out I could just steal the references to avoid partially moving the child and thus retain ability to call functions on it (and store it in structs etc).
| -rw-r--r-- | library/std/src/process.rs | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/library/std/src/process.rs b/library/std/src/process.rs index 4ba1940fd0e..409a9450186 100644 --- a/library/std/src/process.rs +++ b/library/std/src/process.rs @@ -170,17 +170,38 @@ pub struct Child { handle: imp::Process, /// The handle for writing to the child's standard input (stdin), if it has - /// been captured. + /// been captured. To avoid partially moving + /// the `child` and thus blocking yourself from calling + /// functions on `child` while using `stdin`, + /// you might find it helpful: + /// + /// ```compile_fail,E0425 + /// let stdin = child.stdin.take().unwrap(); + /// ``` #[stable(feature = "process", since = "1.0.0")] pub stdin: Option<ChildStdin>, /// The handle for reading from the child's standard output (stdout), if it - /// has been captured. + /// has been captured. You might find it helpful to do + /// + /// ```compile_fail,E0425 + /// let stdout = child.stdout.take().unwrap(); + /// ``` + /// + /// to avoid partially moving the `child` and thus blocking yourself from calling + /// functions on `child` while using `stdout`. #[stable(feature = "process", since = "1.0.0")] pub stdout: Option<ChildStdout>, /// The handle for reading from the child's standard error (stderr), if it - /// has been captured. + /// has been captured. You might find it helpful to do + /// + /// ```compile_fail,E0425 + /// let stderr = child.stderr.take().unwrap(); + /// ``` + /// + /// to avoid partially moving the `child` and thus blocking yourself from calling + /// functions on `child` while using `stderr`. #[stable(feature = "process", since = "1.0.0")] pub stderr: Option<ChildStderr>, } |
