3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2019 年 9 月 12 日 |
---|---|
0.2.0 | 2019 年 9 月 8 日 |
0.1.0 | 2016 年 12 月 15 日 |
#629 在 Rust 模式
1,080,149 每月下载量
用于 2,095 个包 (11 个直接使用)
9KB
140 行
lib.rs
:
Rawpointer 为原始指针 *const T
,*mut T
和 NonNull<T>
添加了额外的实用方法。
功能包括
-
步进偏移 -
.stride_offset(步进, 索引)
可以轻松计算索引为无符号且步进为有符号的指针偏移。 -
为
NonNull
提供通用的偏移方法,因为它从 libcore 中没有这些方法 -
后增量和前增量以及后减量和前减量方法
- 对于
p++
使用p.post_inc()
。 - 对于
++p
使用p.pre_inc()
。 - 对于
p--
使用p.post_dec()
。 - 对于
--p
使用p.pre_dec()
。
- 对于
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]);
}
安全性
有关更多信息,请参阅 Rust core::ptr 文档。
Rust 版本
此版本需要 Rust 1.26 或更高版本