pub trait PathExt {
// Required methods
fn compact(&self) -> PathBuf;
fn extension_or_hidden_file_name(&self) -> Option<&str>;
fn local_to_wsl(&self) -> Option<PathBuf>;
fn multiple_extensions(&self) -> Option<String>;
// Provided method
fn try_from_bytes<'a>(bytes: &'a [u8]) -> Result<Self>
where Self: From<&'a Path> { ... }
}