@@ -78,6 +78,7 @@ use core::hash::{Hash, Hasher};
7878use core:: iter:: { Iterator , FromIterator , FusedIterator } ;
7979use core:: marker:: { Unpin , Unsize } ;
8080use core:: mem;
81+ use core:: needle:: Needle ;
8182use core:: pin:: Pin ;
8283use core:: ops:: {
8384 CoerceUnsized , DispatchFromDyn , Deref , DerefMut , Receiver , Generator , GeneratorState
@@ -919,3 +920,35 @@ impl<F: ?Sized + Future + Unpin> Future for Box<F> {
919920 F :: poll ( Pin :: new ( & mut * self ) , cx)
920921 }
921922}
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