Skip to content

Commit 0ac05c0

Browse files
committed
Auto merge of #16697 - regexident:relpath-to-relpathbuf, r=Veykril
Add `to_path_buf()` method for `RelPath` There seems to be no ergonomic way to obtain a `RelPathBuf` from a corresponding `&RelPath` at the moment, making the latter sort of a dead end. The `AbsPath` type provides the following: ```rust impl AbsPath { // ... /// Equivalent of [`Path::to_path_buf`] for `AbsPath`. pub fn to_path_buf(&self) -> AbsPathBuf { AbsPathBuf::try_from(self.0.to_path_buf()).unwrap() } // ... } ``` So I took the liberty of adding a corresponding equivalent for `RelPath: ```rust impl RelPath { // ... /// Equivalent of [`Path::to_path_buf`] for `RelPath`. pub fn to_path_buf(&self) -> RelPathBuf { RelPathBuf::try_from(self.0.to_path_buf()).unwrap() } // ... } ``` (the change is motivated by an outside use of the `ra_ap_paths` crate that would benefit from being able to use `RelPath` and `AbsPath` over `Path`)
2 parents a41cec9 + 0005794 commit 0ac05c0

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

crates/paths/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,11 @@ impl RelPath {
305305
pub fn new_unchecked(path: &Path) -> &RelPath {
306306
unsafe { &*(path as *const Path as *const RelPath) }
307307
}
308+
309+
/// Equivalent of [`Path::to_path_buf`] for `RelPath`.
310+
pub fn to_path_buf(&self) -> RelPathBuf {
311+
RelPathBuf::try_from(self.0.to_path_buf()).unwrap()
312+
}
308313
}
309314

310315
/// Taken from <https://github.com/rust-lang/cargo/blob/79c769c3d7b4c2cf6a93781575b7f592ef974255/src/cargo/util/paths.rs#L60-L85>

0 commit comments

Comments
 (0)