@@ -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,8 @@ 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 = Reader :: < ( ) > :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Reader" ) ;
595+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
598596
599597 assert_eq ! ( reader. bytes_read( ) , 0 ) ;
600598 assert_eq ! ( writer. bytes_written( ) , 0 ) ;
@@ -636,7 +634,7 @@ mod tests {
636634 123 ,
637635 )
638636 . expect ( "create_descriptor_chain failed" ) ;
639- let mut writer = Writer :: new ( & memory, chain_writer) . expect ( "failed to create Writer" ) ;
637+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain_writer) . expect ( "failed to create Writer" ) ;
640638 if let Err ( e) = writer. write_obj ( secret) {
641639 panic ! ( "write_obj should not fail here: {:?}" , e) ;
642640 }
@@ -649,7 +647,7 @@ mod tests {
649647 123 ,
650648 )
651649 . expect ( "create_descriptor_chain failed" ) ;
652- let mut reader = Reader :: new ( & memory, chain_reader) . expect ( "failed to create Reader" ) ;
650+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain_reader) . expect ( "failed to create Reader" ) ;
653651 match reader. read_obj :: < Le32 > ( ) {
654652 Err ( e) => panic ! ( "read_obj should not fail here: {:?}" , e) ,
655653 Ok ( read_secret) => assert_eq ! ( read_secret, secret) ,
@@ -671,7 +669,7 @@ mod tests {
671669 )
672670 . expect ( "create_descriptor_chain failed" ) ;
673671
674- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
672+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
675673
676674 let mut buf = vec ! [ 0 ; 1024 ] ;
677675
@@ -705,13 +703,13 @@ mod tests {
705703 0 ,
706704 )
707705 . expect ( "create_descriptor_chain failed" ) ;
708- let mut reader = Reader :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Reader" ) ;
706+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Reader" ) ;
709707
710708 let other = reader. split_at ( 32 ) . expect ( "failed to split Reader" ) ;
711709 assert_eq ! ( reader. available_bytes( ) , 32 ) ;
712710 assert_eq ! ( other. available_bytes( ) , 96 ) ;
713711
714- let mut writer = Writer :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Writer" ) ;
712+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain. clone ( ) ) . expect ( "failed to create Writer" ) ;
715713 let other = writer. split_at ( 64 ) . expect ( "failed to split Writer" ) ;
716714 assert_eq ! ( writer. available_bytes( ) , 64 ) ;
717715 assert_eq ! ( other. available_bytes( ) , 4 ) ;
@@ -738,7 +736,7 @@ mod tests {
738736 0 ,
739737 )
740738 . expect ( "create_descriptor_chain failed" ) ;
741- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
739+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
742740
743741 let other = reader. split_at ( 24 ) . expect ( "failed to split Reader" ) ;
744742 assert_eq ! ( reader. available_bytes( ) , 24 ) ;
@@ -766,7 +764,7 @@ mod tests {
766764 0 ,
767765 )
768766 . expect ( "create_descriptor_chain failed" ) ;
769- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
767+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
770768
771769 let other = reader. split_at ( 128 ) . expect ( "failed to split Reader" ) ;
772770 assert_eq ! ( reader. available_bytes( ) , 128 ) ;
@@ -794,7 +792,7 @@ mod tests {
794792 0 ,
795793 )
796794 . expect ( "create_descriptor_chain failed" ) ;
797- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
795+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
798796
799797 let other = reader. split_at ( 0 ) . expect ( "failed to split Reader" ) ;
800798 assert_eq ! ( reader. available_bytes( ) , 0 ) ;
@@ -822,7 +820,7 @@ mod tests {
822820 0 ,
823821 )
824822 . expect ( "create_descriptor_chain failed" ) ;
825- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
823+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
826824
827825 if reader. split_at ( 256 ) . is_ok ( ) {
828826 panic ! ( "successfully split Reader with out of bounds offset" ) ;
@@ -843,7 +841,7 @@ mod tests {
843841 0 ,
844842 )
845843 . expect ( "create_descriptor_chain failed" ) ;
846- let mut reader = Reader :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
844+ let mut reader = Reader :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Reader" ) ;
847845
848846 let mut buf = [ 0u8 ; 64 ] ;
849847 assert_eq ! (
@@ -866,7 +864,7 @@ mod tests {
866864 0 ,
867865 )
868866 . expect ( "create_descriptor_chain failed" ) ;
869- let mut writer = Writer :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
867+ let mut writer = Writer :: < ( ) > :: new ( & memory, chain) . expect ( "failed to create Writer" ) ;
870868
871869 let buf = [ 0xdeu8 ; 64 ] ;
872870 assert_eq ! (
0 commit comments