@@ -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