Add a comment to justify why the pointer
field is pub
.
Addresses https://github.com/rust-lang/rust/pull/93176/files#r795258110.
This commit is contained in:
parent
c93968aee8
commit
002f627d38
@ -406,6 +406,11 @@
|
|||||||
#[repr(transparent)]
|
#[repr(transparent)]
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
pub struct Pin<P> {
|
pub struct Pin<P> {
|
||||||
|
// FIXME(#93176): this field is made `#[unstable] #[doc(hidden)] pub` to:
|
||||||
|
// - deter downstream users from accessing it (which would be unsound!),
|
||||||
|
// - let the `pin!` macro access it (such a macro requires using struct
|
||||||
|
// literal syntax in order to benefit from lifetime extension).
|
||||||
|
// Long-term, `unsafe` fields or macro hygiene are expected to offer more robust alternatives.
|
||||||
#[unstable(feature = "unsafe_pin_internals", issue = "none")]
|
#[unstable(feature = "unsafe_pin_internals", issue = "none")]
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
pub pointer: P,
|
pub pointer: P,
|
||||||
|
Loading…
Reference in New Issue
Block a user