impl CloneToUninit for Path and OsStr

This commit is contained in:
Pavel Grigorenko
2024-06-23 23:05:10 +03:00
parent ec921db289
commit afabc583f7
8 changed files with 95 additions and 0 deletions

View File

@@ -19,12 +19,14 @@
mod tests;
use core::char::{encode_utf16_raw, encode_utf8_raw};
use core::clone::CloneToUninit;
use core::str::next_code_point;
use crate::borrow::Cow;
use crate::collections::TryReserveError;
use crate::hash::{Hash, Hasher};
use crate::iter::FusedIterator;
use crate::ptr::addr_of_mut;
use crate::rc::Rc;
use crate::sync::Arc;
use crate::sys_common::AsInner;
@@ -1046,3 +1048,12 @@ impl Hash for Wtf8 {
0xfeu8.hash(state)
}
}
#[unstable(feature = "clone_to_uninit", issue = "126799")]
unsafe impl CloneToUninit for Wtf8 {
#[cfg_attr(debug_assertions, track_caller)]
unsafe fn clone_to_uninit(&self, dst: *mut Self) {
// SAFETY: we're just a wrapper around [u8]
unsafe { self.bytes.clone_to_uninit(addr_of_mut!((*dst).bytes)) }
}
}