1 // default pin_project! is completely safe. 2 3 ::pin_project_lite::pin_project! { 4 #[derive(Debug)] 5 pub struct DefaultStruct<T, U> { 6 #[pin] 7 pub pinned: T, 8 pub unpinned: U, 9 } 10 } 11 12 ::pin_project_lite::pin_project! { 13 #[project = DefaultStructProj] 14 #[project_ref = DefaultStructProjRef] 15 #[derive(Debug)] 16 pub struct DefaultStructNamed<T, U> { 17 #[pin] 18 pub pinned: T, 19 pub unpinned: U, 20 } 21 } 22 23 ::pin_project_lite::pin_project! { 24 #[project = DefaultEnumProj] 25 #[project_ref = DefaultEnumProjRef] 26 #[derive(Debug)] 27 pub enum DefaultEnum<T, U> { 28 Struct { 29 #[pin] 30 pinned: T, 31 unpinned: U, 32 }, 33 Unit, 34 } 35 } 36