1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年7月12日 |
---|
#216 在 无标准库
23,684 每月下载量
在 49 个 Crates 中使用 (直接使用 8 个)
8KB
87 行
unsafe_unwrap
一个 Rust 库,它允许在不检查的情况下对 Option
和 Result
类型进行展开。
用法
unsafe_unwrap()
方法可以在使用 unwrap()
的任何地方使用。在不优化构建中,它的行为类似于 unwrap()
,而在优化构建中会移除检查。
extern crate unsafe_unwrap;
use unsafe_unwrap::UnsafeUnwrap;
let x = Some(42);
let y = unsafe { x.unsafe_unwrap() };
基准测试
bench_normal_unwrap_1000 |
bench_unsafe_unwrap_1000 |
---|---|
929 ns/iter (+/- 176) | 302 ns/iter (+/- 28) |
许可证
该项目可以选择以下任一许可证发布:
由您选择。
lib.rs
:
提供了一种快速但不安全地展开已知存在内部值的类型的方法。
通过调用 unsafe_unwrap()
,在优化构建中,编译器被告知展开永远不会失败。在调试构建中,它将引发恐慌。
有时优化器可以删除检查展开,如果它可以证明值存在。然而,在它可能无法做到这一点的时候,这可以作为替代方案。
这与 Swift 中 Optional
的 unsafelyUnwrapped
属性类似。
示例
use unsafe_unwrap::UnsafeUnwrap;
let x = Some(20);
let y = unsafe { x.unsafe_unwrap() };