diff --git a/src/socket.rs b/src/socket.rs index f9bcb32..ecf0838 100644 --- a/src/socket.rs +++ b/src/socket.rs @@ -4,7 +4,7 @@ use std::{ io::{Error, Result}, mem, os::{ - fd::{AsFd, BorrowedFd, FromRawFd}, + fd::{AsFd, BorrowedFd, FromRawFd, IntoRawFd}, unix::io::{AsRawFd, RawFd}, }, }; @@ -69,6 +69,14 @@ impl AsFd for Socket { } } +impl IntoRawFd for Socket { + fn into_raw_fd(self) -> RawFd { + let fd = self.0; + std::mem::forget(self); + fd + } +} + impl FromRawFd for Socket { unsafe fn from_raw_fd(fd: RawFd) -> Self { Socket(fd)