mirror of https://github.com/rust-lang/rust.git
Sparkle some attributes over `CloneToUninit` stuff
This commit is contained in:
parent
afabc583f7
commit
dbc13fb309
|
@ -272,6 +272,7 @@ pub unsafe trait CloneToUninit {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl<T: Clone> CloneToUninit for T {
|
||||
#[inline]
|
||||
default unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: The safety conditions of clone_to_uninit() are a superset of those of
|
||||
// ptr::write().
|
||||
|
@ -285,8 +286,10 @@ unsafe impl<T: Clone> CloneToUninit for T {
|
|||
|
||||
// Specialized implementation for types that are [`Copy`], not just [`Clone`],
|
||||
// and can therefore be copied bitwise.
|
||||
#[doc(hidden)]
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl<T: Copy> CloneToUninit for T {
|
||||
#[inline]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: The safety conditions of clone_to_uninit() are a superset of those of
|
||||
// ptr::copy_nonoverlapping().
|
||||
|
@ -298,6 +301,7 @@ unsafe impl<T: Copy> CloneToUninit for T {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl<T: Clone> CloneToUninit for [T] {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
default unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
let len = self.len();
|
||||
|
@ -326,8 +330,10 @@ unsafe impl<T: Clone> CloneToUninit for [T] {
|
|||
}
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl<T: Copy> CloneToUninit for [T] {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
let len = self.len();
|
||||
|
@ -348,6 +354,7 @@ unsafe impl<T: Copy> CloneToUninit for [T] {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl CloneToUninit for str {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: str is just a [u8] with UTF-8 invariant
|
||||
|
|
|
@ -1266,6 +1266,7 @@ impl Clone for Box<OsStr> {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl CloneToUninit for OsStr {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: we're just a wrapper around a platform-specific Slice
|
||||
|
|
|
@ -3113,6 +3113,7 @@ impl Path {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl CloneToUninit for Path {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: Path is just a wrapper around OsStr
|
||||
|
|
|
@ -351,6 +351,7 @@ impl Slice {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl CloneToUninit for Slice {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: we're just a wrapper around [u8]
|
||||
|
|
|
@ -274,6 +274,7 @@ impl Slice {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl CloneToUninit for Slice {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: we're just a wrapper around Wtf8
|
||||
|
|
|
@ -1051,6 +1051,7 @@ impl Hash for Wtf8 {
|
|||
|
||||
#[unstable(feature = "clone_to_uninit", issue = "126799")]
|
||||
unsafe impl CloneToUninit for Wtf8 {
|
||||
#[inline]
|
||||
#[cfg_attr(debug_assertions, track_caller)]
|
||||
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
|
||||
// SAFETY: we're just a wrapper around [u8]
|
||||
|
|
Loading…
Reference in New Issue