File tree 1 file changed +6
-2
lines changed
1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -250,7 +250,9 @@ pub fn read<P: AsRef<Path>>(path: P) -> io::Result<Vec<u8>> {
250
250
fn inner ( path : & Path ) -> io:: Result < Vec < u8 > > {
251
251
let mut file = File :: open ( path) ?;
252
252
let mut bytes = Vec :: new ( ) ;
253
- file. read_to_end ( & mut bytes) ?;
253
+ let size = file. metadata ( ) . map ( |m| m. len ( ) ) . unwrap_or ( 0 ) ;
254
+ bytes. reserve ( size as usize ) ;
255
+ io:: default_read_to_end ( & mut file, & mut bytes) ?;
254
256
Ok ( bytes)
255
257
}
256
258
inner ( path. as_ref ( ) )
@@ -289,7 +291,9 @@ pub fn read_to_string<P: AsRef<Path>>(path: P) -> io::Result<String> {
289
291
fn inner ( path : & Path ) -> io:: Result < String > {
290
292
let mut file = File :: open ( path) ?;
291
293
let mut string = String :: new ( ) ;
292
- file. read_to_string ( & mut string) ?;
294
+ let size = file. metadata ( ) . map ( |m| m. len ( ) ) . unwrap_or ( 0 ) ;
295
+ string. reserve ( size as usize ) ;
296
+ io:: default_read_to_string ( & mut file, & mut string) ?;
293
297
Ok ( string)
294
298
}
295
299
inner ( path. as_ref ( ) )
You can’t perform that action at this time.
0 commit comments