5个版本
使用旧的Rust 2015
0.2.2 | 2017年11月18日 |
---|---|
0.2.1 | 2017年11月12日 |
0.2.0 | 2017年10月29日 |
0.1.1 | 2017年10月22日 |
0.1.0 | 2017年10月8日 |
#2382 in Rust模式
45,092 每月下载量
在 139 个crate中使用 (7个直接使用)
15KB
259 行
unchecked-index
通过常规索引语法进行未检查索引。
使用需要 unsafe
块创建的包装器类型。
- crates.io: https://crates.io/crates/unchecked-index
- travis: https://travis-ci.org/bluss/unchecked-index
注意: 当启用时,此处所有未检查的索引实际上都通过 调试断言 进行“检查”(它们在发布构建中默认关闭)。这是一个特性!调试检查 不会 使你的代码安全,但它有助于在 unsafe
代码中找到错误。负责任地测试你的代码。
示例
use unchecked_index::unchecked_index;
/// unsafe because: trusts the permutation to be correct
unsafe fn apply_permutation<T>(perm: &mut [usize], v: &mut [T]) {
debug_assert_eq!(perm.len(), v.len());
// use unchecked (in reality, debug-checked) indexing throughout
let mut perm = unchecked_index(perm);
for i in 0..perm.len() {
let mut current = i;
while i != perm[current] {
let next = perm[current];
// move element from next to current
v.swap(next, current);
perm[current] = current;
current = next;
}
perm[current] = current;
}
}
如何贡献
- 修复错误或实现新功能
- 为你的新功能包含测试
- 发起pull请求
最近更改
-
0.2.2
- crate现在始终是
no_std
。
- crate现在始终是
-
0.2.1
- 改进(调试)断言消息;修复一个错别字并始终包含相关的数量(起始,结束,长度)
-
0.2.0
- 添加对范围(“切片”)的未检查索引支持
- 添加两个免费函数,
get_unchecked
和get_unchecked_mut
-
0.1.1
- 添加
Copy
实现以供共享切片使用
- 添加
-
0.1.0
- 首次发布