1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
// run-pass use std::ops::Deref; pub struct Pin<P>(P); impl<P, T> Deref for Pin<P> where P: Deref<Target=T>, { type Target = T; fn deref(&self) -> &T { &*self.0 } } impl<P> Pin<P> { fn poll(self) {} } fn main() { let mut unit = (); let pin = Pin(&mut unit); pin.poll(); }