1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017 年 7 月 6 日 |
---|
#5 在 #static-assert
11KB
188 行
不要恐慌!() 切片
此包使用 dont_panic
包创建切片的替代品。 (还不是完全替代品。) 目标是确保代码永远不会恐慌。包的使用者必须向编译器证明恐慌代码是不可达的,通过在切片索引前检查边界。
lib.rs
:
切片的非恐慌替代品。如果没有检查边界,则引发链接时间错误而不是恐慌。(还不是完全替代品。一些功能尚不齐全。)
示例
#[macro_use]
extern crate dont_panic_slice;
use dont_panic_slice::DPSlice;
fn main() {
let arr = [0, 1, 2, 3];
let dps = <&DPSlice<_>>::from(&arr as &[_]);
assert_eq!(dps[0], 0);
assert_eq!(dps[3], 3);
// This would not compile (instead of run time panicking)
assert_eq!(dps[42], 42);
}
您必须使用 --release
编译它。如果您不想减慢调试构建,可以使用 --features=panic
切换到正常的恐慌行为。