use std::{
num::NonZeroI32,
os::{fd, fd::AsRawFd as _},
};
pub(super) struct Descriptor(NonZeroI32);
impl Descriptor {
pub(super) unsafe fn new(source: fd::BorrowedFd<'_>) -> Self {
Self(unsafe { NonZeroI32::new_unchecked(!source.as_raw_fd()) })
}
}
impl fd::AsFd for Descriptor {
fn as_fd(&self) -> fd::BorrowedFd<'_> {
unsafe { fd::BorrowedFd::borrow_raw(!self.0.get()) }
}
}