Function std::ptr::copy1.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.


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);
    ptr::copy(ptr, dst.as_mut_ptr(), elts);