Rollup merge of #41390 - scottmcm:toowned-clone-into, r=alexcrichton
Override ToOwned::clone_into for Path and OsStr
The only non-overridden one remaining is the CStr impl, which cannot
be optimized as doing so would break CString's second invariant.
Follow-up to 7ec27ae (PR #41009).
r? @alexcrichton
This commit is contained in:
@@ -1414,6 +1414,9 @@ impl ToOwned for Path {
|
||||
fn to_owned(&self) -> PathBuf {
|
||||
self.to_path_buf()
|
||||
}
|
||||
fn clone_into(&self, target: &mut PathBuf) {
|
||||
self.inner.clone_into(&mut target.inner);
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
@@ -3859,4 +3862,13 @@ mod tests {
|
||||
assert_eq!(&*boxed, &*path_buf);
|
||||
assert_eq!(&*path_buf, path);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_clone_into() {
|
||||
let mut path_buf = PathBuf::from("supercalifragilisticexpialidocious");
|
||||
let path = Path::new("short");
|
||||
path.clone_into(&mut path_buf);
|
||||
assert_eq!(path, path_buf);
|
||||
assert!(path_buf.into_os_string().capacity() >= 15);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user