2 个稳定版本
6.6.666 | 2022 年 1 月 19 日 |
---|
#1639 在 Rust 模式
79,113 每月下载量
在 25 个包(直接使用 6 个) 中使用
8KB
::never-say-never
!
类型。在稳定 Rust 中。自 1.14.0
以来。
比 enum Never {}
定义更好,因为 !
类型的实例会自动转换成任何类型,而 enum EmptyEnum {}
的实例需要一个显式的 match it {}
。
- 目前,
::core::convert::Infallible
是后者的一个悲伤实例。
也就是说,以下代码无法编译
let x: u32 = match <u32 as TryFrom<u8>>::try_from(42) {
| Ok(it) => it,
| Err(unreachable) => unreachable, // Error, expected `u32`, found `Infallible`
};
但以下代码可以编译!
use ::never_say_never::Never;
let x: u32 = match Ok::<_, Never>(42) {
| Ok(it) => it,
| Err(unreachable) => unreachable,
};