@@ -52,8 +52,8 @@ use crate::cmp::min;
52
52
use crate :: fs:: { File , Metadata } ;
53
53
use crate :: io:: copy:: generic_copy;
54
54
use crate :: io:: {
55
- BorrowedCursor , BufRead , BufReader , BufWriter , Error , IoSlice , IoSliceMut , Read , Result ,
56
- StderrLock , StdinLock , StdoutLock , Take , Write ,
55
+ BufRead , BufReader , BufWriter , Error , Read , Result , StderrLock , StdinLock , StdoutLock , Take ,
56
+ Write ,
57
57
} ;
58
58
use crate :: mem:: ManuallyDrop ;
59
59
use crate :: net:: TcpStream ;
@@ -65,6 +65,7 @@ use crate::process::{ChildStderr, ChildStdin, ChildStdout};
65
65
use crate :: ptr;
66
66
use crate :: sync:: atomic:: { AtomicBool , AtomicU8 , Ordering } ;
67
67
use crate :: sys:: cvt;
68
+ use crate :: sys:: fs:: CachedFileMetadata ;
68
69
use crate :: sys:: weak:: syscall;
69
70
70
71
#[ cfg( test) ]
@@ -537,46 +538,6 @@ impl<T: ?Sized + CopyWrite> CopyWrite for BufWriter<T> {
537
538
}
538
539
}
539
540
540
- pub ( crate ) struct CachedFileMetadata ( pub File , pub Metadata ) ;
541
-
542
- impl Read for CachedFileMetadata {
543
- fn read ( & mut self , buf : & mut [ u8 ] ) -> Result < usize > {
544
- self . 0 . read ( buf)
545
- }
546
- fn read_vectored ( & mut self , bufs : & mut [ IoSliceMut < ' _ > ] ) -> Result < usize > {
547
- self . 0 . read_vectored ( bufs)
548
- }
549
- fn read_buf ( & mut self , cursor : BorrowedCursor < ' _ > ) -> Result < ( ) > {
550
- self . 0 . read_buf ( cursor)
551
- }
552
- #[ inline]
553
- fn is_read_vectored ( & self ) -> bool {
554
- self . 0 . is_read_vectored ( )
555
- }
556
- fn read_to_end ( & mut self , buf : & mut Vec < u8 > ) -> Result < usize > {
557
- self . 0 . read_to_end ( buf)
558
- }
559
- fn read_to_string ( & mut self , buf : & mut String ) -> Result < usize > {
560
- self . 0 . read_to_string ( buf)
561
- }
562
- }
563
- impl Write for CachedFileMetadata {
564
- fn write ( & mut self , buf : & [ u8 ] ) -> Result < usize > {
565
- self . 0 . write ( buf)
566
- }
567
- fn write_vectored ( & mut self , bufs : & [ IoSlice < ' _ > ] ) -> Result < usize > {
568
- self . 0 . write_vectored ( bufs)
569
- }
570
- #[ inline]
571
- fn is_write_vectored ( & self ) -> bool {
572
- self . 0 . is_write_vectored ( )
573
- }
574
- #[ inline]
575
- fn flush ( & mut self ) -> Result < ( ) > {
576
- self . 0 . flush ( )
577
- }
578
- }
579
-
580
541
impl CopyRead for CachedFileMetadata {
581
542
fn properties ( & self ) -> CopyParams {
582
543
CopyParams ( FdMeta :: Metadata ( self . 1 . clone ( ) ) , Some ( self . 0 . as_raw_fd ( ) ) )
0 commit comments