about summary refs log tree commit diff
path: root/library/std/src/ffi
diff options
context:
space:
mode:
authorBenoît du Garreau <bdgdlm@outlook.com>2021-04-27 15:05:26 +0200
committerBenoît du Garreau <bdgdlm@outlook.com>2021-04-27 15:20:59 +0200
commit4a8671a2fa89bfcb925cd9a8e7c5887387cc59ab (patch)
tree1ca03f67166ab7f8c839783c46e90d3e444eded9 /library/std/src/ffi
parentdc8cb63078c1322cef0ac11c2f8b006f6e310a46 (diff)
Override `clone_from` method for PathBuf and OsString
Diffstat (limited to 'library/std/src/ffi')
-rw-r--r--library/std/src/ffi/os_str.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/library/std/src/ffi/os_str.rs b/library/std/src/ffi/os_str.rs
index ecaab670349..ea4b2866017 100644
--- a/library/std/src/ffi/os_str.rs
+++ b/library/std/src/ffi/os_str.rs
@@ -71,7 +71,6 @@ use crate::sys_common::{AsInner, FromInner, IntoInner};
 /// [`&str`]: str
 /// [`CStr`]: crate::ffi::CStr
 /// [conversions]: super#conversions
-#[derive(Clone)]
 #[cfg_attr(not(test), rustc_diagnostic_item = "OsString")]
 #[stable(feature = "rust1", since = "1.0.0")]
 pub struct OsString {
@@ -421,6 +420,19 @@ impl Default for OsString {
 }
 
 #[stable(feature = "rust1", since = "1.0.0")]
+impl Clone for OsString {
+    #[inline]
+    fn clone(&self) -> Self {
+        OsString { inner: self.inner.clone() }
+    }
+
+    #[inline]
+    fn clone_from(&mut self, source: &Self) {
+        self.inner.clone_from(&source.inner)
+    }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
 impl fmt::Debug for OsString {
     fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
         fmt::Debug::fmt(&**self, formatter)