summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-05-17 14:07:28 +0000
committerGitHub <noreply@github.com>2020-05-17 14:07:28 +0000
commitd3fef370b843e0ffd6fc6df6e80d9bbe0d024863 (patch)
tree8d8916b22cdfd41ae77c513b3628a648cb6b98a4 /src
parent2f78ec2bba5bbeac2c666745da1423b8c326f61a (diff)
parent71aa2a6e9a51127d5bed8da38a69aa0894a5fa80 (diff)
downloadnix-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.rs1
-rw-r--r--src/sys/reboot.rs4
-rw-r--r--src/unistd.rs14
3 files changed, 9 insertions, 10 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 51751f9e..7fd7ecb5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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);