pub const unsafe fn replace<T>(dst: *mut T, src: T) -> T
Expand description
Moves src
into the pointed dst
, returning the previous dst
value.
Neither value is dropped.
This function is semantically equivalent to mem::replace
except that it operates on raw pointers instead of references. When references are available, mem::replace
should be preferred.
Behavior is undefined if any of the following conditions are violated:
dst
must be valid for both reads and writes.
dst
must be properly aligned.
dst
must point to a properly initialized value of type T
.
Note that even if T
has size 0
, the pointer must be properly aligned.
use std::ptr;
let mut rust = vec!['b', 'u', 's', 't'];
let b = unsafe {
ptr::replace(&mut rust[0], 'r')
};
assert_eq!(b, 'b');
assert_eq!(rust, &['r', 'u', 's', 't']);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4