@@ -497,7 +497,7 @@ impl RemoteFs for SftpFs {
497497 path : & Path ,
498498 metadata : & Metadata ,
499499 mut reader : Box < dyn Read > ,
500- ) -> RemoteResult < ( ) > {
500+ ) -> RemoteResult < u64 > {
501501 if self . is_connected ( ) {
502502 let mut stream = self . append ( path, metadata) ?;
503503 trace ! ( "Opened remote file" ) ;
@@ -518,8 +518,9 @@ impl RemoteFs for SftpFs {
518518 }
519519 bytes += bytes_read;
520520 }
521+ self . on_written ( stream) ?;
521522 trace ! ( "Written {} bytes to destination" , bytes) ;
522- self . on_written ( stream )
523+ Ok ( bytes as u64 )
523524 } else {
524525 Err ( RemoteError :: new ( RemoteErrorType :: NotConnected ) )
525526 }
@@ -530,7 +531,7 @@ impl RemoteFs for SftpFs {
530531 path : & Path ,
531532 metadata : & Metadata ,
532533 mut reader : Box < dyn std:: io:: Read > ,
533- ) -> RemoteResult < ( ) > {
534+ ) -> RemoteResult < u64 > {
534535 if self . is_connected ( ) {
535536 let mut stream = self . create ( path, metadata) ?;
536537 trace ! ( "Opened remote file" ) ;
@@ -551,14 +552,15 @@ impl RemoteFs for SftpFs {
551552 }
552553 bytes += bytes_read;
553554 }
555+ self . on_written ( stream) ?;
554556 trace ! ( "Written {} bytes to destination" , bytes) ;
555- self . on_written ( stream )
557+ Ok ( bytes as u64 )
556558 } else {
557559 Err ( RemoteError :: new ( RemoteErrorType :: NotConnected ) )
558560 }
559561 }
560562
561- fn open_file ( & mut self , src : & Path , mut dest : Box < dyn Write + Send > ) -> RemoteResult < ( ) > {
563+ fn open_file ( & mut self , src : & Path , mut dest : Box < dyn Write + Send > ) -> RemoteResult < u64 > {
562564 if self . is_connected ( ) {
563565 let transfer_size = self . stat ( src) ?. metadata ( ) . size as usize ;
564566 let mut stream = self . open ( src) ?;
@@ -581,7 +583,7 @@ impl RemoteFs for SftpFs {
581583 }
582584 self . on_read ( stream) ?;
583585 trace ! ( "Copied {} bytes to destination" , bytes) ;
584- Ok ( ( ) )
586+ Ok ( bytes as u64 )
585587 } else {
586588 Err ( RemoteError :: new ( RemoteErrorType :: NotConnected ) )
587589 }
@@ -620,17 +622,25 @@ mod test {
620622 let p = Path :: new ( "a.txt" ) ;
621623 let file_data = "test data\n " ;
622624 let reader = Cursor :: new ( file_data. as_bytes ( ) ) ;
623- assert ! ( client
624- . create_file( p, & Metadata :: default ( ) . size( 10 ) , Box :: new( reader) )
625- . is_ok( ) ) ;
625+ assert_eq ! (
626+ client
627+ . create_file( p, & Metadata :: default ( ) . size( 10 ) , Box :: new( reader) )
628+ . ok( )
629+ . unwrap( ) ,
630+ 10
631+ ) ;
626632 // Verify size
627633 assert_eq ! ( client. stat( p) . ok( ) . unwrap( ) . metadata( ) . size, 10 ) ;
628634 // Append to file
629635 let file_data = "Hello, world!\n " ;
630636 let reader = Cursor :: new ( file_data. as_bytes ( ) ) ;
631- assert ! ( client
632- . append_file( p, & Metadata :: default ( ) . size( 14 ) , Box :: new( reader) )
633- . is_ok( ) ) ;
637+ assert_eq ! (
638+ client
639+ . append_file( p, & Metadata :: default ( ) . size( 14 ) , Box :: new( reader) )
640+ . ok( )
641+ . unwrap( ) ,
642+ 14
643+ ) ;
634644 assert_eq ! ( client. stat( p) . ok( ) . unwrap( ) . metadata( ) . size, 24 ) ;
635645 finalize_client ( client) ;
636646 }
@@ -772,9 +782,13 @@ mod test {
772782 let p = Path :: new ( "a.txt" ) ;
773783 let file_data = "test data\n " ;
774784 let reader = Cursor :: new ( file_data. as_bytes ( ) ) ;
775- assert ! ( client
776- . create_file( p, & Metadata :: default ( ) . size( 10 ) , Box :: new( reader) )
777- . is_ok( ) ) ;
785+ assert_eq ! (
786+ client
787+ . create_file( p, & Metadata :: default ( ) . size( 10 ) , Box :: new( reader) )
788+ . ok( )
789+ . unwrap( ) ,
790+ 10
791+ ) ;
778792 // Verify size
779793 assert_eq ! ( client. stat( p) . ok( ) . unwrap( ) . metadata( ) . size, 10 ) ;
780794 finalize_client ( client) ;
@@ -935,7 +949,7 @@ mod test {
935949 . is_ok( ) ) ;
936950 // Verify size
937951 let buffer: Box < dyn std:: io:: Write + Send > = Box :: new ( Vec :: with_capacity ( 512 ) ) ;
938- assert ! ( client. open_file( p, buffer) . is_ok ( ) ) ;
952+ assert_eq ! ( client. open_file( p, buffer) . ok ( ) . unwrap ( ) , 10 ) ;
939953 finalize_client ( client) ;
940954 }
941955
0 commit comments