diff options
| author | Dan Gohman <dev@sunfishcode.online> | 2021-08-17 16:28:00 -0700 |
|---|---|---|
| committer | Dan Gohman <dev@sunfishcode.online> | 2021-08-19 12:02:41 -0700 |
| commit | 187ee5c824a72ad5a23b3b46d6b747ae27de2d18 (patch) | |
| tree | 9f14176735be745f8087f5cc65514592ce3bb003 /library/std/src/os/unix/process.rs | |
| parent | 6f872880b46d497166dfd33547c7b65125e35a26 (diff) | |
| download | rust-187ee5c824a72ad5a23b3b46d6b747ae27de2d18.tar.gz rust-187ee5c824a72ad5a23b3b46d6b747ae27de2d18.zip | |
Add I/O safety trait impls for process::Stdio and process::Child.
Diffstat (limited to 'library/std/src/os/unix/process.rs')
| -rw-r--r-- | library/std/src/os/unix/process.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/library/std/src/os/unix/process.rs b/library/std/src/os/unix/process.rs index 1e794842e3c..f2e8832cc92 100644 --- a/library/std/src/os/unix/process.rs +++ b/library/std/src/os/unix/process.rs @@ -4,7 +4,7 @@ use crate::ffi::OsStr; use crate::io; -use crate::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; +use crate::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; use crate::process; use crate::sealed::Sealed; use crate::sys; @@ -327,6 +327,16 @@ impl FromRawFd for process::Stdio { } } +#[unstable(feature = "io_safety", issue = "87074")] +impl From<OwnedFd> for process::Stdio { + #[inline] + fn from(fd: OwnedFd) -> process::Stdio { + let fd = sys::fd::FileDesc::from_inner(fd); + let io = sys::process::Stdio::Fd(fd); + process::Stdio::from_inner(io) + } +} + #[stable(feature = "process_extensions", since = "1.2.0")] impl AsRawFd for process::ChildStdin { #[inline] |
