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
.
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.
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 }
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/ptr/fn.copy.html