diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-05-17 14:07:28 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-17 14:07:28 +0000 |
commit | d3fef370b843e0ffd6fc6df6e80d9bbe0d024863 (patch) | |
tree | 8d8916b22cdfd41ae77c513b3628a648cb6b98a4 /src | |
parent | 2f78ec2bba5bbeac2c666745da1423b8c326f61a (diff) | |
parent | 71aa2a6e9a51127d5bed8da38a69aa0894a5fa80 (diff) | |
download | nix-d3fef370b843e0ffd6fc6df6e80d9bbe0d024863.zip |
Merge #1239
1239: Replace void crate with Rust standard lib Infallible type r=asomers a=oherrala
[`std::convert::Infallible`](https://doc.rust-lang.org/stable/std/convert/enum.Infallible.html) has been available since Rust 1.34 and nix currently targets Rust 1.36 or later so this should not cause problems.
Fixes #1238
Co-authored-by: Ossi Herrala <oherrala@iki.fi>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 1 | ||||
-rw-r--r-- | src/sys/reboot.rs | 4 | ||||
-rw-r--r-- | src/unistd.rs | 14 |
3 files changed, 9 insertions, 10 deletions
@@ -20,7 +20,6 @@ extern crate bitflags; #[macro_use] extern crate cfg_if; -extern crate void; // Re-exported external crates pub extern crate libc; diff --git a/src/sys/reboot.rs b/src/sys/reboot.rs index bafa8fc1..d18b44d6 100644 --- a/src/sys/reboot.rs +++ b/src/sys/reboot.rs @@ -3,7 +3,7 @@ use {Error, Result}; use errno::Errno; use libc; -use void::Void; +use std::convert::Infallible; use std::mem::drop; libc_enum! { @@ -22,7 +22,7 @@ libc_enum! { } } -pub fn reboot(how: RebootMode) -> Result<Void> { +pub fn reboot(how: RebootMode) -> Result<Infallible> { unsafe { libc::reboot(how as libc::c_int) }; diff --git a/src/unistd.rs b/src/unistd.rs index fff103c0..3589cb72 100644 --- a/src/unistd.rs +++ b/src/unistd.rs @@ -7,11 +7,11 @@ use fcntl::FcntlArg::F_SETFD; use libc::{self, c_char, c_void, c_int, c_long, c_uint, size_t, pid_t, off_t, uid_t, gid_t, mode_t, PATH_MAX}; use std::{fmt, mem, ptr}; +use std::convert::Infallible; use std::ffi::{CString, CStr, OsString, OsStr}; use std::os::unix::ffi::{OsStringExt, OsStrExt}; use std::os::unix::io::RawFd; use std::path::PathBuf; -use void::Void; use sys::stat::Mode; #[cfg(any(target_os = "android", target_os = "linux"))] @@ -707,7 +707,7 @@ fn to_exec_array(args: &[&CStr]) -> Vec<*const c_char> { /// performs the same action but does not allow for customization of the /// environment for the new process. #[inline] -pub fn execv(path: &CStr, argv: &[&CStr]) -> Result<Void> { +pub fn execv(path: &CStr, argv: &[&CStr]) -> Result<Infallible> { let args_p = to_exec_array(argv); unsafe { @@ -731,7 +731,7 @@ pub fn execv(path: &CStr, argv: &[&CStr]) -> Result<Void> { /// in the `args` list is an argument to the new process. Each element in the /// `env` list should be a string in the form "key=value". #[inline] -pub fn execve(path: &CStr, args: &[&CStr], env: &[&CStr]) -> Result<Void> { +pub fn execve(path: &CStr, args: &[&CStr], env: &[&CStr]) -> Result<Infallible> { let args_p = to_exec_array(args); let env_p = to_exec_array(env); @@ -752,7 +752,7 @@ pub fn execve(path: &CStr, args: &[&CStr], env: &[&CStr]) -> Result<Void> { /// would not work if "bash" was specified for the path argument, but `execvp` /// would assuming that a bash executable was on the system `PATH`. #[inline] -pub fn execvp(filename: &CStr, args: &[&CStr]) -> Result<Void> { +pub fn execvp(filename: &CStr, args: &[&CStr]) -> Result<Infallible> { let args_p = to_exec_array(args); unsafe { @@ -772,7 +772,7 @@ pub fn execvp(filename: &CStr, args: &[&CStr]) -> Result<Void> { #[cfg(any(target_os = "haiku", target_os = "linux", target_os = "openbsd"))] -pub fn execvpe(filename: &CStr, args: &[&CStr], env: &[&CStr]) -> Result<Void> { +pub fn execvpe(filename: &CStr, args: &[&CStr], env: &[&CStr]) -> Result<Infallible> { let args_p = to_exec_array(args); let env_p = to_exec_array(env); @@ -800,7 +800,7 @@ pub fn execvpe(filename: &CStr, args: &[&CStr], env: &[&CStr]) -> Result<Void> { target_os = "linux", target_os = "freebsd"))] #[inline] -pub fn fexecve(fd: RawFd, args: &[&CStr], env: &[&CStr]) -> Result<Void> { +pub fn fexecve(fd: RawFd, args: &[&CStr], env: &[&CStr]) -> Result<Infallible> { let args_p = to_exec_array(args); let env_p = to_exec_array(env); @@ -824,7 +824,7 @@ pub fn fexecve(fd: RawFd, args: &[&CStr], env: &[&CStr]) -> Result<Void> { #[cfg(any(target_os = "android", target_os = "linux"))] #[inline] pub fn execveat(dirfd: RawFd, pathname: &CStr, args: &[&CStr], - env: &[&CStr], flags: super::fcntl::AtFlags) -> Result<Void> { + env: &[&CStr], flags: super::fcntl::AtFlags) -> Result<Infallible> { let args_p = to_exec_array(args); let env_p = to_exec_array(env); |