Optimize fold_home_dir

pull/9932/head
mo8it 8 months ago committed by Blaž Hrastnik
parent 6607938bf8
commit 6ed93b6e49

@ -2,6 +2,7 @@ pub use etcetera::home_dir;
use std::{ use std::{
borrow::Cow, borrow::Cow,
ffi::OsString,
path::{Component, Path, PathBuf}, path::{Component, Path, PathBuf},
}; };
@ -12,7 +13,10 @@ use crate::env::current_working_dir;
pub fn fold_home_dir(path: &Path) -> PathBuf { pub fn fold_home_dir(path: &Path) -> PathBuf {
if let Ok(home) = home_dir() { if let Ok(home) = home_dir() {
if let Ok(stripped) = path.strip_prefix(&home) { if let Ok(stripped) = path.strip_prefix(&home) {
return PathBuf::from("~").join(stripped); let mut path = OsString::with_capacity(2 + stripped.as_os_str().len());
path.push("~/");
path.push(stripped);
return PathBuf::from(path);
} }
} }

Loading…
Cancel
Save