1- #![ unstable( feature = "async_drop" , issue = "none " ) ]
1+ #![ unstable( feature = "async_drop" , issue = "126482 " ) ]
22
33use crate :: fmt;
44use crate :: future:: { Future , IntoFuture } ;
@@ -10,27 +10,27 @@ use crate::task::{ready, Context, Poll};
1010
1111/// Asynchronously drops a value by running `AsyncDrop::async_drop`
1212/// on a value and its fields recursively.
13- #[ unstable( feature = "async_drop" , issue = "none " ) ]
13+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
1414pub fn async_drop < T > ( value : T ) -> AsyncDropOwning < T > {
1515 AsyncDropOwning { value : MaybeUninit :: new ( value) , dtor : None , _pinned : PhantomPinned }
1616}
1717
1818/// A future returned by the [`async_drop`].
19- #[ unstable( feature = "async_drop" , issue = "none " ) ]
19+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
2020pub struct AsyncDropOwning < T > {
2121 value : MaybeUninit < T > ,
2222 dtor : Option < AsyncDropInPlace < T > > ,
2323 _pinned : PhantomPinned ,
2424}
2525
26- #[ unstable( feature = "async_drop" , issue = "none " ) ]
26+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
2727impl < T > fmt:: Debug for AsyncDropOwning < T > {
2828 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
2929 f. debug_struct ( "AsyncDropOwning" ) . finish_non_exhaustive ( )
3030 }
3131}
3232
33- #[ unstable( feature = "async_drop" , issue = "none " ) ]
33+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
3434impl < T > Future for AsyncDropOwning < T > {
3535 type Output = ( ) ;
3636
@@ -86,24 +86,24 @@ unsafe fn async_drop_in_place_raw<T: ?Sized>(
8686/// returned future stores the `to_drop` pointer and user is required
8787/// to guarantee that dropped value doesn't move.
8888///
89- #[ unstable( feature = "async_drop" , issue = "none " ) ]
89+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
9090pub unsafe fn async_drop_in_place < T : ?Sized > ( to_drop : * mut T ) -> AsyncDropInPlace < T > {
9191 // SAFETY: `async_drop_in_place_raw` has the same safety requirements
9292 unsafe { AsyncDropInPlace ( async_drop_in_place_raw ( to_drop) ) }
9393}
9494
9595/// A future returned by the [`async_drop_in_place`].
96- #[ unstable( feature = "async_drop" , issue = "none " ) ]
96+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
9797pub struct AsyncDropInPlace < T : ?Sized > ( <T as AsyncDestruct >:: AsyncDestructor ) ;
9898
99- #[ unstable( feature = "async_drop" , issue = "none " ) ]
99+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
100100impl < T : ?Sized > fmt:: Debug for AsyncDropInPlace < T > {
101101 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
102102 f. debug_struct ( "AsyncDropInPlace" ) . finish_non_exhaustive ( )
103103 }
104104}
105105
106- #[ unstable( feature = "async_drop" , issue = "none " ) ]
106+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
107107impl < T : ?Sized > Future for AsyncDropInPlace < T > {
108108 type Output = ( ) ;
109109
@@ -117,18 +117,18 @@ impl<T: ?Sized> Future for AsyncDropInPlace<T> {
117117// FIXME(zetanumbers): Add same restrictions on AsyncDrop impls as
118118// with Drop impls
119119/// Custom code within the asynchronous destructor.
120- #[ unstable( feature = "async_drop" , issue = "none " ) ]
120+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
121121#[ lang = "async_drop" ]
122122pub trait AsyncDrop {
123123 /// A future returned by the [`AsyncDrop::async_drop`] to be part
124124 /// of the async destructor.
125- #[ unstable( feature = "async_drop" , issue = "none " ) ]
125+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
126126 type Dropper < ' a > : Future < Output = ( ) >
127127 where
128128 Self : ' a ;
129129
130130 /// Constructs the asynchronous destructor for this type.
131- #[ unstable( feature = "async_drop" , issue = "none " ) ]
131+ #[ unstable( feature = "async_drop" , issue = "126482 " ) ]
132132 fn async_drop ( self : Pin < & mut Self > ) -> Self :: Dropper < ' _ > ;
133133}
134134
0 commit comments