Function replace

1.6.0 (const: 1.83.0) · Source
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.

§Safety

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.

§Examples

use std::ptr;

let mut rust = vec!['b', 'u', 's', 't'];

// `mem::replace` would have the same effect without requiring the unsafe
// block.
let b = unsafe {
    ptr::replace(&mut rust[0], 'r')
};

assert_eq!(b, 'b');
assert_eq!(rust, &['r', 'u', 's', 't']);
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy