@@ -52,8 +52,8 @@ use crate::cmp::min;
5252use crate :: fs:: { File , Metadata } ;
5353use crate :: io:: copy:: generic_copy;
5454use 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 ,
5757} ;
5858use crate :: mem:: ManuallyDrop ;
5959use crate :: net:: TcpStream ;
@@ -65,6 +65,7 @@ use crate::process::{ChildStderr, ChildStdin, ChildStdout};
6565use crate :: ptr;
6666use crate :: sync:: atomic:: { AtomicBool , AtomicU8 , Ordering } ;
6767use crate :: sys:: cvt;
68+ use crate :: sys:: fs:: CachedFileMetadata ;
6869use crate :: sys:: weak:: syscall;
6970
7071#[ cfg( test) ]
@@ -537,46 +538,6 @@ impl<T: ?Sized + CopyWrite> CopyWrite for BufWriter<T> {
537538 }
538539}
539540
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-
580541impl CopyRead for CachedFileMetadata {
581542 fn properties ( & self ) -> CopyParams {
582543 CopyParams ( FdMeta :: Metadata ( self . 1 . clone ( ) ) , Some ( self . 0 . as_raw_fd ( ) ) )
0 commit comments