dope 0.10.1

The manifold runtime
Documentation
use std::marker::PhantomData;
use std::os::fd::OwnedFd;
use std::rc::Rc;

#[derive(Debug)]
pub struct Source<'d> {
    fd: Rc<OwnedFd>,
    brand: PhantomData<fn(&'d ()) -> &'d ()>,
}

impl<'d> Source<'d> {
    #[doc(hidden)]
    pub fn owned(fd: OwnedFd) -> Self {
        Self {
            fd: Rc::new(fd),
            brand: PhantomData,
        }
    }

    #[doc(hidden)]
    pub fn lease(&self) -> Rc<OwnedFd> {
        Rc::clone(&self.fd)
    }
}