@@ -3,6 +3,7 @@ mod tests;
3
3
4
4
use crate :: io:: prelude:: * ;
5
5
6
+ use crate :: alloc:: Allocator ;
6
7
use crate :: cmp;
7
8
use crate :: io:: { self , Error , ErrorKind , IoSlice , IoSliceMut , ReadBuf , SeekFrom } ;
8
9
@@ -398,7 +399,10 @@ fn slice_write_vectored(
398
399
}
399
400
400
401
// Resizing write implementation
401
- fn vec_write ( pos_mut : & mut u64 , vec : & mut Vec < u8 > , buf : & [ u8 ] ) -> io:: Result < usize > {
402
+ fn vec_write < A > ( pos_mut : & mut u64 , vec : & mut Vec < u8 , A > , buf : & [ u8 ] ) -> io:: Result < usize >
403
+ where
404
+ A : Allocator ,
405
+ {
402
406
let pos: usize = ( * pos_mut) . try_into ( ) . map_err ( |_| {
403
407
Error :: new_const (
404
408
ErrorKind :: InvalidInput ,
@@ -426,11 +430,14 @@ fn vec_write(pos_mut: &mut u64, vec: &mut Vec<u8>, buf: &[u8]) -> io::Result<usi
426
430
Ok ( buf. len ( ) )
427
431
}
428
432
429
- fn vec_write_vectored (
433
+ fn vec_write_vectored < A > (
430
434
pos_mut : & mut u64 ,
431
- vec : & mut Vec < u8 > ,
435
+ vec : & mut Vec < u8 , A > ,
432
436
bufs : & [ IoSlice < ' _ > ] ,
433
- ) -> io:: Result < usize > {
437
+ ) -> io:: Result < usize >
438
+ where
439
+ A : Allocator ,
440
+ {
434
441
let mut nwritten = 0 ;
435
442
for buf in bufs {
436
443
nwritten += vec_write ( pos_mut, vec, buf) ?;
@@ -462,7 +469,10 @@ impl Write for Cursor<&mut [u8]> {
462
469
}
463
470
464
471
#[ stable( feature = "cursor_mut_vec" , since = "1.25.0" ) ]
465
- impl Write for Cursor < & mut Vec < u8 > > {
472
+ impl < A > Write for Cursor < & mut Vec < u8 , A > >
473
+ where
474
+ A : Allocator ,
475
+ {
466
476
fn write ( & mut self , buf : & [ u8 ] ) -> io:: Result < usize > {
467
477
vec_write ( & mut self . pos , self . inner , buf)
468
478
}
@@ -483,7 +493,10 @@ impl Write for Cursor<&mut Vec<u8>> {
483
493
}
484
494
485
495
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
486
- impl Write for Cursor < Vec < u8 > > {
496
+ impl < A > Write for Cursor < Vec < u8 , A > >
497
+ where
498
+ A : Allocator ,
499
+ {
487
500
fn write ( & mut self , buf : & [ u8 ] ) -> io:: Result < usize > {
488
501
vec_write ( & mut self . pos , & mut self . inner , buf)
489
502
}
@@ -504,7 +517,10 @@ impl Write for Cursor<Vec<u8>> {
504
517
}
505
518
506
519
#[ stable( feature = "cursor_box_slice" , since = "1.5.0" ) ]
507
- impl Write for Cursor < Box < [ u8 ] > > {
520
+ impl < A > Write for Cursor < Box < [ u8 ] , A > >
521
+ where
522
+ A : Allocator ,
523
+ {
508
524
#[ inline]
509
525
fn write ( & mut self , buf : & [ u8 ] ) -> io:: Result < usize > {
510
526
slice_write ( & mut self . pos , & mut self . inner , buf)
0 commit comments