This commit is contained in:
veeso
2021-03-27 12:17:35 +01:00
parent 67e36fa38f
commit 55e884889c
16 changed files with 64 additions and 156 deletions

View File

@@ -166,10 +166,10 @@ impl FtpFileTransfer {
let mut abs_path: PathBuf = PathBuf::from(path);
abs_path.push(file_name.as_str());
// get extension
let extension: Option<String> = match abs_path.as_path().extension() {
None => None,
Some(s) => Some(String::from(s.to_string_lossy())),
};
let extension: Option<String> = abs_path
.as_path()
.extension()
.map(|s| String::from(s.to_string_lossy()));
// Return
// Push to entries
Ok(match is_dir {
@@ -254,10 +254,10 @@ impl FtpFileTransfer {
let mut abs_path: PathBuf = PathBuf::from(path);
abs_path.push(file_name.as_str());
// Get extension
let extension: Option<String> = match abs_path.as_path().extension() {
None => None,
Some(s) => Some(String::from(s.to_string_lossy())),
};
let extension: Option<String> = abs_path
.as_path()
.extension()
.map(|s| String::from(s.to_string_lossy()));
// Return entry
Ok(match is_dir {
true => FsEntry::Directory(FsDirectory {

View File

@@ -175,10 +175,10 @@ impl ScpFileTransfer {
let mut abs_path: PathBuf = PathBuf::from(path);
abs_path.push(file_name.as_str());
// Get extension
let extension: Option<String> = match abs_path.as_path().extension() {
None => None,
Some(s) => Some(String::from(s.to_string_lossy())),
};
let extension: Option<String> = abs_path
.as_path()
.extension()
.map(|s| String::from(s.to_string_lossy()));
// Return
// Push to entries
Ok(match is_dir {
@@ -220,10 +220,7 @@ impl ScpFileTransfer {
fn get_name_and_link(&self, token: &str) -> (String, Option<PathBuf>) {
let tokens: Vec<&str> = token.split(" -> ").collect();
let filename: String = String::from(*tokens.get(0).unwrap());
let symlink: Option<PathBuf> = match tokens.get(1) {
Some(s) => Some(PathBuf::from(s)),
None => None,
};
let symlink: Option<PathBuf> = tokens.get(1).map(PathBuf::from);
(filename, symlink)
}
@@ -382,10 +379,7 @@ impl FileTransfer for ScpFileTransfer {
}
}
// Get banner
let banner: Option<String> = match session.banner() {
Some(s) => Some(String::from(s)),
None => None,
};
let banner: Option<String> = session.banner().map(String::from);
// Set session
self.session = Some(session);
// Get working directory

View File

@@ -123,20 +123,18 @@ impl SftpFileTransfer {
fn make_fsentry(&mut self, path: &Path, metadata: &FileStat) -> FsEntry {
// Get common parameters
let file_name: String = String::from(path.file_name().unwrap().to_str().unwrap_or(""));
let file_type: Option<String> = match path.extension() {
Some(ext) => Some(String::from(ext.to_str().unwrap_or(""))),
None => None,
};
let file_type: Option<String> = path
.extension()
.map(|ext| String::from(ext.to_str().unwrap_or("")));
let uid: Option<u32> = metadata.uid;
let gid: Option<u32> = metadata.gid;
let pex: Option<(u8, u8, u8)> = match metadata.perm {
Some(perms) => Some((
((perms >> 6) & 0x7) as u8,
((perms >> 3) & 0x7) as u8,
(perms & 0x7) as u8,
)),
None => None,
};
let pex: Option<(u8, u8, u8)> = metadata.perm.map(|x| {
(
((x >> 6) & 0x7) as u8,
((x >> 3) & 0x7) as u8,
(x & 0x7) as u8,
)
});
let size: u64 = metadata.size.unwrap_or(0);
let mut atime: SystemTime = SystemTime::UNIX_EPOCH;
atime = atime
@@ -365,10 +363,7 @@ impl FileTransfer for SftpFileTransfer {
}
};
// Set session
let banner: Option<String> = match session.banner() {
Some(s) => Some(String::from(s)),
None => None,
};
let banner: Option<String> = session.banner().map(String::from);
self.session = Some(session);
// Set sftp
self.sftp = Some(sftp);