Crate rawpointer
source · [−]Expand description
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
- For
p++
usep.post_inc()
. - For
++p
usep.pre_inc()
. - For
p--
usep.post_dec()
. - For
--p
usep.pre_dec()
.
- For
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]);
}
Safety
See the Rust core::ptr documentation for more information.
Rust Version
This version of the crate requires Rust 1.26 or later
Traits
Extension methods for raw pointers
Functions
Return the number of elements of T
from start
to end
.
Return the arithmetic difference if T
is zero size.