mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-26 14:43:24 +00:00
Auto merge of #84615 - a1phyr:clone_from_pathbuf_osstring, r=Mark-Simulacrum
Override `clone_from` method for PathBuf and OsString This was not the case before because `#[derive(Clone)]` do not do it.
This commit is contained in:
commit
50ca3ac24f
@ -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 {
|
||||
@ -420,6 +419,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 {
|
||||
|
@ -1065,7 +1065,6 @@ impl FusedIterator for Ancestors<'_> {}
|
||||
/// ```
|
||||
///
|
||||
/// Which method works best depends on what kind of situation you're in.
|
||||
#[derive(Clone)]
|
||||
#[cfg_attr(not(test), rustc_diagnostic_item = "PathBuf")]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
// FIXME:
|
||||
@ -1406,6 +1405,19 @@ impl PathBuf {
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Clone for PathBuf {
|
||||
#[inline]
|
||||
fn clone(&self) -> Self {
|
||||
PathBuf { inner: self.inner.clone() }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn clone_from(&mut self, source: &Self) {
|
||||
self.inner.clone_from(&source.inner)
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "box_from_path", since = "1.17.0")]
|
||||
impl From<&Path> for Box<Path> {
|
||||
fn from(path: &Path) -> Box<Path> {
|
||||
|
@ -14,7 +14,7 @@ use crate::sys_common::{AsInner, FromInner, IntoInner};
|
||||
|
||||
use core::str::lossy::Utf8Lossy;
|
||||
|
||||
#[derive(Clone, Hash)]
|
||||
#[derive(Hash)]
|
||||
pub(crate) struct Buf {
|
||||
pub inner: Vec<u8>,
|
||||
}
|
||||
@ -53,6 +53,18 @@ impl fmt::Display for Buf {
|
||||
}
|
||||
}
|
||||
|
||||
impl Clone for Buf {
|
||||
#[inline]
|
||||
fn clone(&self) -> Self {
|
||||
Buf { inner: self.inner.clone() }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn clone_from(&mut self, source: &Self) {
|
||||
self.inner.clone_from(&source.inner)
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoInner<Vec<u8>> for Buf {
|
||||
fn into_inner(self) -> Vec<u8> {
|
||||
self.inner
|
||||
|
Loading…
Reference in New Issue
Block a user