Skip to content

Commit 6f13d4b

Browse files
committed
return u64 on _file methods
1 parent 93fe85d commit 6f13d4b

File tree

2 files changed

+46
-21
lines changed

2 files changed

+46
-21
lines changed

src/ssh/scp.rs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,13 @@ mod test {
830830
let reader = Cursor::new(file_data.as_bytes());
831831
let mut metadata = Metadata::default();
832832
metadata.size = file_data.len() as u64;
833-
assert!(client.create_file(p, &metadata, Box::new(reader)).is_ok());
833+
assert_eq!(
834+
client
835+
.create_file(p, &metadata, Box::new(reader))
836+
.ok()
837+
.unwrap(),
838+
10
839+
);
834840
// Verify size
835841
assert_eq!(client.stat(p).ok().unwrap().metadata().size, 10);
836842
finalize_client(client);
@@ -986,12 +992,11 @@ mod test {
986992
let p = Path::new("a.txt");
987993
let file_data = "test data\n";
988994
let reader = Cursor::new(file_data.as_bytes());
989-
let mut metadata = Metadata::default();
990-
metadata.size = file_data.len() as u64;
995+
let metadata = Metadata::default().size(file_data.len() as u64);
991996
assert!(client.create_file(p, &metadata, Box::new(reader)).is_ok());
992997
// Verify size
993998
let buffer: Box<dyn std::io::Write + Send> = Box::new(Vec::with_capacity(512));
994-
assert!(client.open_file(p, buffer).is_ok());
999+
assert_eq!(client.open_file(p, buffer).ok().unwrap(), 10);
9951000
finalize_client(client);
9961001
}
9971002

@@ -1199,7 +1204,13 @@ mod test {
11991204
let reader = Cursor::new(file_data.as_bytes());
12001205
let mut metadata = Metadata::default();
12011206
metadata.size = file_data.len() as u64;
1202-
assert!(client.create_file(p, &metadata, Box::new(reader)).is_ok());
1207+
assert_eq!(
1208+
client
1209+
.create_file(p, &metadata, Box::new(reader))
1210+
.ok()
1211+
.unwrap(),
1212+
7
1213+
);
12031214
let entry = client.stat(p).ok().unwrap();
12041215
assert_eq!(entry.name(), "a.sh");
12051216
let mut expected_path = client.pwd().ok().unwrap();

src/ssh/sftp.rs

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)