// default pin_project! is completely safe. ::pin_project_lite::pin_project! { #[derive(Debug)] pub struct DefaultStruct { #[pin] pub pinned: T, pub unpinned: U, } } ::pin_project_lite::pin_project! { #[project = DefaultStructProj] #[project_ref = DefaultStructProjRef] #[derive(Debug)] pub struct DefaultStructNamed { #[pin] pub pinned: T, pub unpinned: U, } } ::pin_project_lite::pin_project! { #[project = DefaultEnumProj] #[project_ref = DefaultEnumProjRef] #[derive(Debug)] pub enum DefaultEnum { Struct { #[pin] pinned: T, unpinned: U, }, Unit, } }