Function std::intrinsics::copy 1.0.0[−][src]
pub unsafe extern "rust-intrinsic" fn copy<T>(
src: *const T,
dst: *mut T,
count: usize
)
Copies count * size_of<T> bytes from src to dst. The source
and destination may overlap.
copy is semantically equivalent to C's memmove.
Safety
Care must be taken with the ownership of src and dst.
This method semantically moves the values of src into dst.
However it does not drop the contents of dst, or prevent the contents of src
from being dropped or used.
Examples
Efficiently create a Rust vector from an unsafe buffer:
use std::ptr; unsafe fn from_buf_raw<T>(ptr: *const T, elts: usize) -> Vec<T> { let mut dst = Vec::with_capacity(elts); dst.set_len(elts); ptr::copy(ptr, dst.as_mut_ptr(), elts); dst }Run