@@ -107,7 +107,7 @@ impl<'a> DeserializeBorrowed<'a> for Vec<RecordIndex> {
107107 }
108108}
109109
110- impl < ' a > DeserializeBorrowed < ' a > for Vec < u8 > {
110+ impl < ' a > DeserializeBorrowed < ' a > for Box < [ u8 ] > {
111111 fn deserialize_borrowed ( data : & ' a [ u8 ] , pos : & mut usize ) -> std:: io:: Result < Self > {
112112 let len = read_vlq_u64 ( data, pos) ? as usize ;
113113 if * pos + len > data. len ( ) {
@@ -116,7 +116,7 @@ impl<'a> DeserializeBorrowed<'a> for Vec<u8> {
116116 "unexpected end of data reading bytes" ,
117117 ) ) ;
118118 }
119- let bytes = data[ * pos..* pos + len] . to_vec ( ) ;
119+ let bytes = data[ * pos..* pos + len] . to_vec ( ) . into_boxed_slice ( ) ;
120120 * pos += len;
121121 Ok ( bytes)
122122 }
@@ -126,10 +126,10 @@ impl<'a> DeserializeBorrowed<'a> for AttrMap {
126126 fn deserialize_borrowed ( data : & ' a [ u8 ] , pos : & mut usize ) -> std:: io:: Result < Self > {
127127 let _byte_count = read_u64_le_slice ( data, pos) ?;
128128 let len = read_vlq_u64 ( data, pos) ? as usize ;
129- let mut map: HashMap < usize , Vec < u8 > > = HashMap :: with_capacity ( len) ;
129+ let mut map: HashMap < usize , Box < [ u8 ] > > = HashMap :: with_capacity ( len) ;
130130 for _ in 0 ..len {
131131 let key = read_vlq_u64 ( data, pos) ? as usize ;
132- let value = <Vec < u8 > >:: deserialize_borrowed ( data, pos) ?;
132+ let value = <Box < [ u8 ] > >:: deserialize_borrowed ( data, pos) ?;
133133 map. insert ( key, value) ;
134134 }
135135 Ok ( map)
@@ -415,11 +415,11 @@ impl DeserializeOwned for AttrMap {
415415 let start = reader. stream_position ( ) . await ?;
416416 let _byte_count = read_u64_le ( reader) . await ?;
417417 let len = reader. read_vu64 ( ) . await ?;
418- let mut buf: HashMap < usize , Vec < u8 > > = HashMap :: with_capacity ( len as usize ) ;
418+ let mut buf: HashMap < usize , Box < [ u8 ] > > = HashMap :: with_capacity ( len as usize ) ;
419419 for _ in 0 ..len {
420420 let key = reader. read_vu64 ( ) . await ?;
421421 let value = <Vec < u8 > >:: deserialize_owned ( reader) . await ?;
422- buf. insert ( key as usize , value) ;
422+ buf. insert ( key as usize , value. into_boxed_slice ( ) ) ;
423423 }
424424 let end = reader. stream_position ( ) . await ?;
425425 tracing:: debug!(
@@ -443,7 +443,7 @@ impl DeserializeOwned for FileRecord<'static> {
443443 let decompressed_length = read_u64_le ( reader) . await ?;
444444 let data = read_u64_le ( reader) . await ?;
445445 let name = String :: deserialize_owned ( reader) . await ?;
446- let attrs = <HashMap < usize , Vec < u8 > > >:: deserialize_owned ( reader) . await ?;
446+ let attrs = <HashMap < usize , Box < [ u8 ] > > >:: deserialize_owned ( reader) . await ?;
447447
448448 let end = reader. stream_position ( ) . await ?;
449449 tracing:: debug!( start = format_args!( "{:#x}" , start) , end = format_args!( "{:#x}" , end) , bytes = end - start, %name, "deserialized FileRecord" ) ;
@@ -496,7 +496,7 @@ pub(crate) async fn deserialize_directory_owned<R: AsyncRead + AsyncSeek + Unpin
496496 Vec :: new ( )
497497 } ;
498498
499- let attrs = <HashMap < usize , Vec < u8 > > >:: deserialize_owned ( reader) . await ?;
499+ let attrs = <HashMap < usize , Box < [ u8 ] > > >:: deserialize_owned ( reader) . await ?;
500500
501501 let end = reader. stream_position ( ) . await ?;
502502 tracing:: debug!( start = format_args!( "{:#x}" , start) , end = format_args!( "{:#x}" , end) , bytes = end - start, %name, "deserialized DirectoryRecord" ) ;
@@ -545,7 +545,7 @@ impl DeserializeOwned for LinkRecord<'static> {
545545 let start = reader. stream_position ( ) . await ?;
546546 let name = String :: deserialize_owned ( reader) . await ?;
547547 let target = RecordIndex :: deserialize_owned ( reader) . await ?;
548- let attrs = <HashMap < usize , Vec < u8 > > >:: deserialize_owned ( reader) . await ?;
548+ let attrs = <HashMap < usize , Box < [ u8 ] > > >:: deserialize_owned ( reader) . await ?;
549549
550550 let end = reader. stream_position ( ) . await ?;
551551 tracing:: debug!( start = format_args!( "{:#x}" , start) , end = format_args!( "{:#x}" , end) , bytes = end - start, %name, "deserialized LinkRecord" ) ;
@@ -565,7 +565,7 @@ impl DeserializeOwned for ExternalLinkRecord<'static> {
565565 let start = reader. stream_position ( ) . await ?;
566566 let name = String :: deserialize_owned ( reader) . await ?;
567567 let target = String :: deserialize_owned ( reader) . await ?;
568- let attrs = <HashMap < usize , Vec < u8 > > >:: deserialize_owned ( reader) . await ?;
568+ let attrs = <HashMap < usize , Box < [ u8 ] > > >:: deserialize_owned ( reader) . await ?;
569569
570570 let end = reader. stream_position ( ) . await ?;
571571 tracing:: debug!( start = format_args!( "{:#x}" , start) , end = format_args!( "{:#x}" , end) , bytes = end - start, %name, "deserialized ExternalLinkRecord" ) ;
@@ -642,7 +642,7 @@ pub(crate) async fn deserialize_metadata_owned<R: AsyncRead + AsyncSeek + Unpin
642642 }
643643
644644 let attr_keys = deserialize_attr_keys_owned ( reader, version) . await ?;
645- let attrs = <HashMap < usize , Vec < u8 > > >:: deserialize_owned ( reader) . await ?;
645+ let attrs = <HashMap < usize , Box < [ u8 ] > > >:: deserialize_owned ( reader) . await ?;
646646
647647 // Skip 0-padding to 8-byte boundary
648648 loop {
0 commit comments