Auto merge of #77893 - petertodd:2020-impl-default-for-phantompinned, r=dtolnay
Impl Default for PhantomPinned `PhantomPinned` is just a marker type, with an obvious default value (the only value). So I can't think of a reason not to do this. Sure, it's used in exotic situations with unsafe code. But the people writing that code can decide for themselves if they can derive `Default`, and in many situations the derived impl will make sense: ```rust #[derive(Default)] struct NeedsPin { marker: PhantomPinned, buf: [u8; 1024], ptr_to_data: Option<*const u8>, } ```
This commit is contained in:
commit
068320b39e
@ -775,7 +775,7 @@ pub auto trait Unpin {}
|
||||
///
|
||||
/// If a type contains a `PhantomPinned`, it will not implement `Unpin` by default.
|
||||
#[stable(feature = "pin", since = "1.33.0")]
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
|
||||
#[derive(Debug, Default, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
|
||||
pub struct PhantomPinned;
|
||||
|
||||
#[stable(feature = "pin", since = "1.33.0")]
|
||||
|
Loading…
Reference in New Issue
Block a user