let size_dirty = upload_stats.size - upload_stats.size_reused;
let size: HumanByte = upload_stats.size.into();
let archive = if self.verbose {
- archive_name.to_string()
+ archive_name
} else {
pbs_tools::format::strip_server_file_extension(archive_name)
};
pub fn complete_archive_name(arg: &str, param: &HashMap<String, String>) -> Vec<String> {
complete_server_file_name(arg, param)
.iter()
- .map(|v| pbs_tools::format::strip_server_file_extension(&v))
+ .map(|v| pbs_tools::format::strip_server_file_extension(&v).to_owned())
.collect()
}
.iter()
.filter_map(|name| {
if name.ends_with(".pxar.didx") {
- Some(pbs_tools::format::strip_server_file_extension(name))
+ Some(pbs_tools::format::strip_server_file_extension(name).to_owned())
} else {
None
}
.iter()
.filter_map(|name| {
if name.ends_with(".img.fidx") {
- Some(pbs_tools::format::strip_server_file_extension(name))
+ Some(pbs_tools::format::strip_server_file_extension(name).to_owned())
} else {
None
}
+use std::borrow::Borrow;
+
use anyhow::{Error};
use serde_json::Value;
-pub fn strip_server_file_extension(name: &str) -> String {
+pub fn strip_server_file_extension(name: &str) -> &str {
if name.ends_with(".didx") || name.ends_with(".fidx") || name.ends_with(".blob") {
- name[..name.len()-5].to_owned()
+ &name[..name.len()-5]
} else {
- name.to_owned() // should not happen
+ name // should not happen
}
}
-pub fn render_backup_file_list(files: &[String]) -> String {
- let mut files: Vec<String> = files.iter()
- .map(|v| strip_server_file_extension(&v))
+pub fn render_backup_file_list<S: Borrow<str>>(files: &[S]) -> String {
+ let mut files: Vec<&str> = files.iter()
+ .map(|v| strip_server_file_extension(v.borrow()))
.collect();
files.sort();