[][src]Crate rawpointer

Rawpointer adds extra utility methods to raw pointers *const T, *mut T and NonNull<T>.

Features include:

  • Strided offsets - .stride_offset(stride, index) make it easy to compute pointer offsets where the index is unsigned and the stride is signed.

  • Offsetting methods in general for NonNull, since it does not have these from libcore

  • Post- and preincrement and post- and predecrement methods

use rawpointer::PointerExt;

unsafe {
    // In this example:
    // Use .post_inc() to iterate and overwrite the first four
    // elements of the array.

    let mut xs = [0; 16];
    let mut ptr = xs.as_mut_ptr();
    let end = ptr.offset(4);
    let mut i = 0;
    while ptr != end {
        *ptr.post_inc() = i;
        i += 1;
    assert_eq!(&xs[..8], &[0, 1, 2, 3, 0, 0, 0, 0]);


See the Rust core::ptr documentation for more information.

Rust Version

This version of the crate requires Rust 1.26 or later



Extension methods for raw pointers



Return the number of elements of T from start to end.
Return the arithmetic difference if T is zero size.