Auto merge of #71447 - cuviper:unsized_cow, r=dtolnay
impl From<Cow> for Box, Rc, and Arc These forward `Borrowed`/`Owned` values to existing `From` impls. - `Box<T>` is a fundamental type, so it would be a breaking change to add a blanket impl. Therefore, `From<Cow>` is only implemented for `[T]`, `str`, `CStr`, `OsStr`, and `Path`. - For `Rc<T>` and `Arc<T>`, `From<Cow>` is implemented for everything that implements `From` the borrowed and owned types separately.
This commit is contained in:
commit
914adf04af
9 changed files with 141 additions and 5 deletions
|
@ -1433,6 +1433,17 @@ impl From<&Path> for Box<Path> {
|
|||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "box_from_cow", since = "1.45.0")]
|
||||
impl From<Cow<'_, Path>> for Box<Path> {
|
||||
#[inline]
|
||||
fn from(cow: Cow<'_, Path>) -> Box<Path> {
|
||||
match cow {
|
||||
Cow::Borrowed(path) => Box::from(path),
|
||||
Cow::Owned(path) => Box::from(path),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "path_buf_from_box", since = "1.18.0")]
|
||||
impl From<Box<Path>> for PathBuf {
|
||||
/// Converts a `Box<Path>` into a `PathBuf`
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue