let backup_id = tools::required_string_param(¶m, "backup-id")?;
let backup_time = tools::required_integer_param(¶m, "backup-time")?;
- let snapshot = BackupDir::new(BackupGroup::new(backup_type, backup_id), backup_time);
+ let snapshot = BackupDir::new(backup_type, backup_id, backup_time);
let datastore = DataStore::lookup_datastore(store)?;
verify_chunk_size(chunk_size)?;
let datastore = DataStore::lookup_datastore(store)?;
- let backup_dir = BackupDir::new(BackupGroup::new(backup_type, backup_id), backup_time);
+ let backup_dir = BackupDir::new(backup_type, backup_id, backup_time);
let (mut path, _new) = datastore.create_backup_dir(&backup_dir)?;
let datastore = DataStore::lookup_datastore(store)?;
- let backup_dir = BackupDir::new(BackupGroup::new(backup_type, backup_id), backup_time);
+ let backup_dir = BackupDir::new(backup_type, backup_id, backup_time);
let mut path = backup_dir.relative_path();
impl BackupDir {
- pub fn new(group: BackupGroup, timestamp: i64) -> Self {
+ pub fn new<T, U>(backup_type: T, backup_id: U, timestamp: i64) -> Self
+ where
+ T: Into<String>,
+ U: Into<String>,
+ {
// Note: makes sure that nanoseconds is 0
- Self { group, backup_time: Local.timestamp(timestamp, 0) }
+ Self {
+ group: BackupGroup::new(backup_type.into(), backup_id.into()),
+ backup_time: Local.timestamp(timestamp, 0),
+ }
}
pub fn group(&self) -> &BackupGroup {
let group = BackupGroup::new(cap.get(1).unwrap().as_str(), cap.get(2).unwrap().as_str());
let backup_time = cap.get(3).unwrap().as_str().parse::<DateTime<Local>>()?;
- Ok(BackupDir::new(group, backup_time.timestamp()))
+ Ok(BackupDir::from((group, backup_time.timestamp())))
}
pub fn relative_path(&self) -> PathBuf {
}
}
+impl From<(BackupGroup, i64)> for BackupDir {
+ fn from((group, timestamp): (BackupGroup, i64)) -> Self {
+ Self { group, backup_time: Local.timestamp(timestamp, 0) }
+ }
+}
+
/// Detailed Backup Information, lists files inside a BackupDir
#[derive(Debug)]
pub struct BackupInfo {
})?;
list.push(BackupInfo {
- backup_dir: BackupDir::new(BackupGroup::new(backup_type, backup_id), dt.timestamp()),
+ backup_dir: BackupDir::new(backup_type, backup_id, dt.timestamp()),
files,
});
let btype = item["backup-type"].as_str().unwrap();
let epoch = item["backup-time"].as_i64().unwrap();
- let backup_dir = BackupDir::new(BackupGroup::new(btype, id), epoch);
+ let backup_dir = BackupDir::new(btype, id, epoch);
let files = item["files"].as_array().unwrap().iter().map(|v| v.as_str().unwrap().to_owned()).collect();
let btype = item["backup-type"].as_str().unwrap();
let epoch = item["backup-time"].as_i64().unwrap();
- let snapshot = BackupDir::new(BackupGroup::new(btype, id), epoch);
+ let snapshot = BackupDir::new(btype, id, epoch);
let path = snapshot.relative_path().to_str().unwrap().to_owned();