From 1afe13474100aa228f27325a7b57ad0bb57bf627 Mon Sep 17 00:00:00 2001 From: "Aode (lion)" Date: Sat, 5 Mar 2022 14:53:38 -0600 Subject: [PATCH] Add try_clone for AsFd types --- src/lib.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index b3e9e4d..0a46792 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,10 +9,18 @@ use std::{ pub mod io; pub mod net; -pub use rustix::{ - fd::{AsFd, AsRawFd, BorrowedFd}, - io::OwnedFd, -}; +pub mod fd { + pub use rustix::{ + fd::{AsFd, AsRawFd, BorrowedFd}, + io::OwnedFd, + }; + + pub fn try_clone(fd: A) -> super::io::Result { + rustix::fs::fcntl_dupfd_cloexec(fd, 0).map_err(From::from) + } +} + +use fd::{AsFd, OwnedFd}; #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] pub struct KeyRef(*const ());