Create a backup path for a file
(original: &Path)
| 222 | |
| 223 | /// Create a backup path for a file |
| 224 | fn create_backup_path(original: &Path) -> PathBuf { |
| 225 | let mut backup = original.to_path_buf(); |
| 226 | let extension = backup |
| 227 | .extension() |
| 228 | .map(|e| e.to_string_lossy().to_string()) |
| 229 | .unwrap_or_default(); |
| 230 | |
| 231 | let new_extension = if extension.is_empty() { |
| 232 | "bak".to_string() |
| 233 | } else { |
| 234 | format!("{}.bak", extension) |
| 235 | }; |
| 236 | |
| 237 | backup.set_extension(new_extension); |
| 238 | backup |
| 239 | } |
| 240 | |
| 241 | #[cfg(test)] |
| 242 | mod tests { |