7 个版本
0.0.7 | 2022 年 8 月 4 日 |
---|---|
0.0.6 | 2022 年 8 月 1 日 |
0.0.5 | 2022 年 7 月 31 日 |
#2517 在 Rust 模式
用于 fs-dir-cache
10KB
154 行
Convi - Rust 的方便(但安全)的转换(类似From
)特质
厌倦了在 Rust 中安全地进行类型强制转换(如 usize
等)的痛苦吗?这个包就是为了解决这个问题而存在的。
通过在这个包上启用 cargo 功能,如下所示
convi = { version = "*", features = [ "min_target_pointer_width_32" ] }
你可以将你的代码标记为不兼容指针大小小于 32 位的架构。这将启用额外的不可出错 usize
转换,如下
use convi::CastFrom;
fn main() {
let some_u32 = 3u32;
println!("{}", usize::cast_from(some_u32));
}
如果有人尝试为不受支持的架构构建你的代码,将显示适当的错误信息。
此外,对于你知道你的值将始终小于给定类型的情况,而不是使用 u32::try_from(some_usize).expect("必须不失败")
,你可以
use convi::ExpectFrom;
fn main() {
let some_u32 = 3u32;
println!("{}", usize::expect_from(some_u32));
}
无依赖,代码小,自行查看。