From 57e83a63dd63135561b04d3617be279c29708b8b Mon Sep 17 00:00:00 2001 From: ChristianVisintin Date: Sat, 12 Dec 2020 16:32:21 +0100 Subject: [PATCH] Optimized code for fsentry --- src/filetransfer/scp_transfer.rs | 10 ++-------- src/filetransfer/sftp_transfer.rs | 5 +---- src/host/mod.rs | 5 +---- .../filetransfer_activity/callbacks.rs | 20 ++++--------------- .../filetransfer_activity/layout.rs | 10 ++-------- 5 files changed, 10 insertions(+), 40 deletions(-) diff --git a/src/filetransfer/scp_transfer.rs b/src/filetransfer/scp_transfer.rs index ee4028e..a4edeb3 100644 --- a/src/filetransfer/scp_transfer.rs +++ b/src/filetransfer/scp_transfer.rs @@ -550,10 +550,7 @@ impl FileTransfer for ScpFileTransfer { match self.is_connected() { true => { // Get path - let path: PathBuf = match file { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(file) => file.abs_path.clone(), - }; + let path: PathBuf = file.get_abs_path(); let p: PathBuf = self.wrkdir.clone(); match self.perform_shell_cmd_with_path( p.as_path(), @@ -589,10 +586,7 @@ impl FileTransfer for ScpFileTransfer { match self.is_connected() { true => { // Get path - let path: PathBuf = match file { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(file) => file.abs_path.clone(), - }; + let path: PathBuf = file.get_abs_path(); let p: PathBuf = self.wrkdir.clone(); match self.perform_shell_cmd_with_path( p.as_path(), diff --git a/src/filetransfer/sftp_transfer.rs b/src/filetransfer/sftp_transfer.rs index 1e9c806..5ec5d7d 100644 --- a/src/filetransfer/sftp_transfer.rs +++ b/src/filetransfer/sftp_transfer.rs @@ -461,10 +461,7 @@ impl FileTransfer for SftpFileTransfer { // Resolve destination path let abs_dst: PathBuf = self.get_abs_path(dst); // Get abs path of entry - let abs_src: PathBuf = match file { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(file) => file.abs_path.clone(), - }; + let abs_src: PathBuf = file.get_abs_path(); match sftp.rename(abs_src.as_path(), abs_dst.as_path(), None) { Ok(_) => Ok(()), Err(err) => Err(FileTransferError::new_ex( diff --git a/src/host/mod.rs b/src/host/mod.rs index 15ffad0..daefa0a 100644 --- a/src/host/mod.rs +++ b/src/host/mod.rs @@ -244,10 +244,7 @@ impl Localhost { /// /// Rename file or directory to new name pub fn rename(&mut self, entry: &FsEntry, dst_path: &Path) -> Result<(), HostError> { - let abs_path: PathBuf = match entry { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(f) => f.abs_path.clone(), - }; + let abs_path: PathBuf = entry.get_abs_path(); match std::fs::rename(abs_path.as_path(), dst_path) { Ok(_) => { // Scan dir diff --git a/src/ui/activities/filetransfer_activity/callbacks.rs b/src/ui/activities/filetransfer_activity/callbacks.rs index 9a86301..70d387b 100644 --- a/src/ui/activities/filetransfer_activity/callbacks.rs +++ b/src/ui/activities/filetransfer_activity/callbacks.rs @@ -147,10 +147,7 @@ impl FileTransferActivity { } // Check if file entry exists if let Some(entry) = self.local.files.get(self.local.index) { - let full_path: PathBuf = match entry { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(file) => file.abs_path.clone(), - }; + let full_path: PathBuf = entry.get_abs_path(); // Rename file or directory and report status as popup match self .context @@ -194,10 +191,7 @@ impl FileTransferActivity { FileExplorerTab::Remote => { // Check if file entry exists if let Some(entry) = self.remote.files.get(self.remote.index) { - let full_path: PathBuf = match entry { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(file) => file.abs_path.clone(), - }; + let full_path: PathBuf = entry.get_abs_path(); // Rename file or directory and report status as popup let dst_path: PathBuf = PathBuf::from(input); match self.client.rename(entry, dst_path.as_path()) { @@ -247,10 +241,7 @@ impl FileTransferActivity { FileExplorerTab::Local => { // Check if file entry exists if let Some(entry) = self.local.files.get(self.local.index) { - let full_path: PathBuf = match entry { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(file) => file.abs_path.clone(), - }; + let full_path: PathBuf = entry.get_abs_path(); // Delete file or directory and report status as popup match self.context.as_mut().unwrap().local.remove(entry) { Ok(_) => { @@ -283,10 +274,7 @@ impl FileTransferActivity { FileExplorerTab::Remote => { // Check if file entry exists if let Some(entry) = self.remote.files.get(self.remote.index) { - let full_path: PathBuf = match entry { - FsEntry::Directory(dir) => dir.abs_path.clone(), - FsEntry::File(file) => file.abs_path.clone(), - }; + let full_path: PathBuf = entry.get_abs_path(); // Delete file match self.client.remove(entry) { Ok(_) => { diff --git a/src/ui/activities/filetransfer_activity/layout.rs b/src/ui/activities/filetransfer_activity/layout.rs index 397ca93..0acaeee 100644 --- a/src/ui/activities/filetransfer_activity/layout.rs +++ b/src/ui/activities/filetransfer_activity/layout.rs @@ -474,10 +474,7 @@ impl FileTransferActivity { match &dir.symlink { Some(symlink) => { // Get symlink path - let symlink_path: &Path = match &**symlink { - FsEntry::Directory(s_dir) => s_dir.abs_path.as_path(), - FsEntry::File(s_file) => s_file.abs_path.as_path(), - }; + let symlink_path: PathBuf = symlink.get_abs_path(); format!( "{} => {}", dir.abs_path.display(), @@ -570,10 +567,7 @@ impl FileTransferActivity { match &file.symlink { Some(symlink) => { // Get symlink path - let symlink_path: &Path = match &**symlink { - FsEntry::Directory(s_dir) => s_dir.abs_path.as_path(), - FsEntry::File(s_file) => s_file.abs_path.as_path(), - }; + let symlink_path: PathBuf = symlink.get_abs_path(); format!( "{} => {}", file.abs_path.display(),