@@ -14,7 +14,7 @@ use std::ptr::copy_nonoverlapping;
1414use std:: { cmp, result} ;
1515
1616use crate :: { DescriptorChain , Error } ;
17- use vm_memory:: bitmap:: { BitmapSlice , WithBitmapSlice } ;
17+ use vm_memory:: bitmap:: { BitmapSlice , MS } ;
1818use vm_memory:: {
1919 Address , ByteValued , GuestMemory , GuestMemoryRegion , MemoryRegionAddress , VolatileSlice ,
2020} ;
@@ -157,10 +157,9 @@ pub struct Reader<'a, B = ()> {
157157
158158impl < ' a , B : BitmapSlice > Reader < ' a , B > {
159159 /// Construct a new Reader wrapper over `desc_chain`.
160- pub fn new < M , T > ( mem : & ' a M , desc_chain : DescriptorChain < T > ) -> Result < Reader < ' a , B > >
160+ pub fn new < M , T > ( mem : & ' a M , desc_chain : DescriptorChain < T > ) -> Result < Reader < ' a , MS < ' a , M > > >
161161 where
162162 M : GuestMemory ,
163- <<M as GuestMemory >:: R as GuestMemoryRegion >:: B : WithBitmapSlice < ' a , S = B > ,
164163 T : Deref ,
165164 T :: Target : GuestMemory + Sized ,
166165 {
@@ -186,7 +185,7 @@ impl<'a, B: BitmapSlice> Reader<'a, B> {
186185 . get_slice ( MemoryRegionAddress ( offset. raw_value ( ) ) , desc. len ( ) as usize )
187186 . map_err ( Error :: GuestMemoryError )
188187 } )
189- . collect :: < Result < VecDeque < VolatileSlice < ' a , B > > > > ( ) ?;
188+ . collect :: < Result < VecDeque < _ > > > ( ) ?;
190189 Ok ( Reader {
191190 buffer : DescriptorChainConsumer {
192191 buffers,
@@ -269,10 +268,9 @@ pub struct Writer<'a, B = ()> {
269268
270269impl < ' a , B : BitmapSlice > Writer < ' a , B > {
271270 /// Construct a new Writer wrapper over `desc_chain`.
272- pub fn new < M , T > ( mem : & ' a M , desc_chain : DescriptorChain < T > ) -> Result < Writer < ' a , B > >
271+ pub fn new < M , T > ( mem : & ' a M , desc_chain : DescriptorChain < T > ) -> Result < Writer < ' a , MS < ' a , M > > >
273272 where
274273 M : GuestMemory ,
275- <<M as GuestMemory >:: R as GuestMemoryRegion >:: B : WithBitmapSlice < ' a , S = B > ,
276274 T : Deref ,
277275 T :: Target : GuestMemory + Sized ,
278276 {
@@ -298,7 +296,7 @@ impl<'a, B: BitmapSlice> Writer<'a, B> {
298296 . get_slice ( MemoryRegionAddress ( offset. raw_value ( ) ) , desc. len ( ) as usize )
299297 . map_err ( Error :: GuestMemoryError )
300298 } )
301- . collect :: < Result < VecDeque < VolatileSlice < ' a , B > > > > ( ) ?;
299+ . collect :: < Result < VecDeque < _ > > > ( ) ?;
302300
303301 Ok ( Writer {
304302 buffer : DescriptorChainConsumer {
@@ -451,7 +449,7 @@ mod tests {
451449
452450 let chain = queue. iter ( & memory) . unwrap ( ) . next ( ) . unwrap ( ) ;
453451
454- assert ! ( Reader :: new( & memory, chain) . is_err( ) ) ;
452+ assert ! ( Reader :: < ( ) > :: new( & memory, chain) . is_err( ) ) ;
455453 }
456454
457455 #[ test]
@@ -473,7 +471,7 @@ mod tests {
473471 0 ,
474472 )
475473 . expect ( "create_descriptor_chain failed" ) ;
476- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
474+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
477475 assert_eq ! ( reader. available_bytes( ) , 106 ) ;
478476 assert_eq ! ( reader. bytes_read( ) , 0 ) ;
479477
@@ -513,7 +511,7 @@ mod tests {
513511 0 ,
514512 )
515513 . expect ( "create_descriptor_chain failed" ) ;
516- let mut writer = Writer :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
514+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
517515 assert_eq ! ( writer. available_bytes( ) , 106 ) ;
518516 assert_eq ! ( writer. bytes_written( ) , 0 ) ;
519517
@@ -543,7 +541,7 @@ mod tests {
543541
544542 let chain = create_descriptor_chain ( & memory, GuestAddress ( 0x0 ) , vec ! [ ( Writable , 8 ) ] , 0 )
545543 . expect ( "create_descriptor_chain failed" ) ;
546- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
544+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
547545 assert_eq ! ( reader. available_bytes( ) , 0 ) ;
548546 assert_eq ! ( reader. bytes_read( ) , 0 ) ;
549547
@@ -562,7 +560,7 @@ mod tests {
562560
563561 let chain = create_descriptor_chain ( & memory, GuestAddress ( 0x0 ) , vec ! [ ( Readable , 8 ) ] , 0 )
564562 . expect ( "create_descriptor_chain failed" ) ;
565- let mut writer = Writer :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
563+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
566564 assert_eq ! ( writer. available_bytes( ) , 0 ) ;
567565 assert_eq ! ( writer. bytes_written( ) , 0 ) ;
568566
@@ -593,8 +591,9 @@ mod tests {
593591 0 ,
594592 )
595593 . expect ( "create_descriptor_chain failed" ) ;
596- let mut reader = Reader :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Reader" ) ;
597- let mut writer = Writer :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
594+ let mut reader =
595+ Reader :: < ( ) > :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Reader" ) ;
596+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
598597
599598 assert_eq ! ( reader. bytes_read( ) , 0 ) ;
600599 assert_eq ! ( writer. bytes_written( ) , 0 ) ;
@@ -636,7 +635,7 @@ mod tests {
636635 123 ,
637636 )
638637 . expect ( "create_descriptor_chain failed" ) ;
639- let mut writer = Writer :: new ( & memory, chain_writer) . expect ( "failed to create Writer" ) ;
638+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain_writer) . expect ( "failed to create Writer" ) ;
640639 if let Err ( e) = writer. write_obj ( secret) {
641640 panic ! ( "write_obj should not fail here: {:?}" , e) ;
642641 }
@@ -649,7 +648,7 @@ mod tests {
649648 123 ,
650649 )
651650 . expect ( "create_descriptor_chain failed" ) ;
652- let mut reader = Reader :: new ( & memory, chain_reader) . expect ( "failed to create Reader" ) ;
651+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain_reader) . expect ( "failed to create Reader" ) ;
653652 match reader. read_obj :: < Le32 > ( ) {
654653 Err ( e) => panic ! ( "read_obj should not fail here: {:?}" , e) ,
655654 Ok ( read_secret) => assert_eq ! ( read_secret, secret) ,
@@ -671,7 +670,7 @@ mod tests {
671670 )
672671 . expect ( "create_descriptor_chain failed" ) ;
673672
674- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
673+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
675674
676675 let mut buf = vec ! [ 0 ; 1024 ] ;
677676
@@ -705,13 +704,15 @@ mod tests {
705704 0 ,
706705 )
707706 . expect ( "create_descriptor_chain failed" ) ;
708- let mut reader = Reader :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Reader" ) ;
707+ let mut reader =
708+ Reader :: < ( ) > :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Reader" ) ;
709709
710710 let other = reader. split_at ( 32 ) . expect ( "failed to split Reader" ) ;
711711 assert_eq ! ( reader. available_bytes( ) , 32 ) ;
712712 assert_eq ! ( other. available_bytes( ) , 96 ) ;
713713
714- let mut writer = Writer :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Writer" ) ;
714+ let mut writer =
715+ Writer :: < ( ) > :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Writer" ) ;
715716 let other = writer. split_at ( 64 ) . expect ( "failed to split Writer" ) ;
716717 assert_eq ! ( writer. available_bytes( ) , 64 ) ;
717718 assert_eq ! ( other. available_bytes( ) , 4 ) ;
@@ -738,7 +739,7 @@ mod tests {
738739 0 ,
739740 )
740741 . expect ( "create_descriptor_chain failed" ) ;
741- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
742+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
742743
743744 let other = reader. split_at ( 24 ) . expect ( "failed to split Reader" ) ;
744745 assert_eq ! ( reader. available_bytes( ) , 24 ) ;
@@ -766,7 +767,7 @@ mod tests {
766767 0 ,
767768 )
768769 . expect ( "create_descriptor_chain failed" ) ;
769- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
770+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
770771
771772 let other = reader. split_at ( 128 ) . expect ( "failed to split Reader" ) ;
772773 assert_eq ! ( reader. available_bytes( ) , 128 ) ;
@@ -794,7 +795,7 @@ mod tests {
794795 0 ,
795796 )
796797 . expect ( "create_descriptor_chain failed" ) ;
797- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
798+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
798799
799800 let other = reader. split_at ( 0 ) . expect ( "failed to split Reader" ) ;
800801 assert_eq ! ( reader. available_bytes( ) , 0 ) ;
@@ -822,7 +823,7 @@ mod tests {
822823 0 ,
823824 )
824825 . expect ( "create_descriptor_chain failed" ) ;
825- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
826+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
826827
827828 if reader. split_at ( 256 ) . is_ok ( ) {
828829 panic ! ( "successfully split Reader with out of bounds offset" ) ;
@@ -843,7 +844,7 @@ mod tests {
843844 0 ,
844845 )
845846 . expect ( "create_descriptor_chain failed" ) ;
846- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
847+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
847848
848849 let mut buf = [ 0u8 ; 64 ] ;
849850 assert_eq ! (
@@ -866,7 +867,7 @@ mod tests {
866867 0 ,
867868 )
868869 . expect ( "create_descriptor_chain failed" ) ;
869- let mut writer = Writer :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
870+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
870871
871872 let buf = [ 0xdeu8 ; 64 ] ;
872873 assert_eq ! (
0 commit comments