W3cubDocs

/Rust

Function std::ptr::swap_nonoverlapping

pub unsafe fn swap_nonoverlapping<T>(x: *mut T, y: *mut T, count: usize)
🔬 This is a nightly-only experimental API. (swap_nonoverlapping #42818)

Swaps a sequence of values at two mutable locations of the same type.

Safety

The two arguments must each point to the beginning of count locations of valid memory, and the two memory ranges must not overlap.

Examples

Basic usage:

#![feature(swap_nonoverlapping)]

use std::ptr;

let mut x = [1, 2, 3, 4];
let mut y = [7, 8, 9];

unsafe {
    ptr::swap_nonoverlapping(x.as_mut_ptr(), y.as_mut_ptr(), 2);
}

assert_eq!(x, [7, 8, 3, 4]);
assert_eq!(y, [1, 2, 9]);

© 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.swap_nonoverlapping.html