@@ -78,6 +78,7 @@ use core::hash::{Hash, Hasher};
78
78
use core:: iter:: { Iterator , FromIterator , FusedIterator } ;
79
79
use core:: marker:: { Unpin , Unsize } ;
80
80
use core:: mem;
81
+ use core:: needle:: Needle ;
81
82
use core:: pin:: Pin ;
82
83
use core:: ops:: {
83
84
CoerceUnsized , DispatchFromDyn , Deref , DerefMut , Receiver , Generator , GeneratorState
@@ -919,3 +920,35 @@ impl<F: ?Sized + Future + Unpin> Future for Box<F> {
919
920
F :: poll ( Pin :: new ( & mut * self ) , cx)
920
921
}
921
922
}
923
+
924
+ #[ unstable( feature = "needle" , issue = "56345" ) ]
925
+ impl < ' p , ' h , T : PartialEq + ' p + ' h > Needle < & ' h [ T ] > for & ' p Box < [ T ] > {
926
+ type Searcher = <& ' p [ T ] as Needle < & ' h [ T ] > >:: Searcher ;
927
+ type Consumer = <& ' p [ T ] as Needle < & ' h [ T ] > >:: Consumer ;
928
+
929
+ #[ inline]
930
+ fn into_searcher ( self ) -> Self :: Searcher {
931
+ <& ' p [ T ] as Needle < & ' h [ T ] > >:: into_searcher ( & * * self )
932
+ }
933
+
934
+ #[ inline]
935
+ fn into_consumer ( self ) -> Self :: Consumer {
936
+ <& ' p [ T ] as Needle < & ' h [ T ] > >:: into_consumer ( & * * self )
937
+ }
938
+ }
939
+
940
+ #[ unstable( feature = "needle" , issue = "56345" ) ]
941
+ impl < ' p , ' h , T : PartialEq + ' p + ' h > Needle < & ' h mut [ T ] > for & ' p Box < [ T ] > {
942
+ type Searcher = <& ' p [ T ] as Needle < & ' h mut [ T ] > >:: Searcher ;
943
+ type Consumer = <& ' p [ T ] as Needle < & ' h mut [ T ] > >:: Consumer ;
944
+
945
+ #[ inline]
946
+ fn into_searcher ( self ) -> Self :: Searcher {
947
+ <& ' p [ T ] as Needle < & ' h mut [ T ] > >:: into_searcher ( & * * self )
948
+ }
949
+
950
+ #[ inline]
951
+ fn into_consumer ( self ) -> Self :: Consumer {
952
+ <& ' p [ T ] as Needle < & ' h mut [ T ] > >:: into_consumer ( & * * self )
953
+ }
954
+ }
0 commit comments