Skip to main content

dope_core/driver/lifecycle/
install.rs

1use std::marker;
2
3use crate::driver::lifecycle;
4
5/// Proof that nested resources are installed beneath their pinned owner.
6#[must_use]
7pub struct Install<'a, 'd> {
8    _borrow: marker::PhantomData<&'a mut ()>,
9    _driver: marker::PhantomData<*mut &'d ()>,
10    _thread: o3::ThreadBound,
11}
12
13impl<'a, 'd> Install<'a, 'd> {
14    pub fn new<T: lifecycle::raw::InstallRoot + ?Sized>(_root: &'a mut T) -> Self {
15        Self {
16            _borrow: marker::PhantomData,
17            _driver: marker::PhantomData,
18            _thread: o3::ThreadBound::NEW,
19        }
20    }
21}
22
23const _: () = assert!(std::mem::size_of::<Install<'static, 'static>>() == 0);