3 个不稳定版本
0.2.1 | 2022 年 10 月 28 日 |
---|---|
0.2.0 | 2022 年 8 月 21 日 |
0.1.2 | 2022 年 5 月 15 日 |
0.1.1 |
|
0.1.0 |
|
#2338 在 Rust 模式中
5,339 每月下载量
用于 13 个crate(5 个直接使用)
22KB
679 行
numeric_cast
安全地在数字之间转换。
lib.rs
:
安全地在数字之间转换。
扩展特质 NumericCast
为所有数字类型添加了一个泛型方法 numeric_cast
。此方法允许用户安全地将一个数字转换为另一种类型,而不会丢失精度。
如果值无法由目标类型表示,则方法会引发一个包含值、源类型名称和目标类型名称的消息的恐慌。
由于 numeric_cast
被标记为 track_caller
,因此恐慌位置将正好是你调用方法的地方。
该库优化了代码膨胀。在大多数用例中,数值转换总是在运行时成功,因此恐慌函数从正常控制流中分离出来以减少性能影响。
示例
use numeric_cast::NumericCast;
let entries: u64 = 1024;
let capacity = entries.numeric_cast::<usize>();
let offset: isize = entries.numeric_cast(); // by inference
use numeric_cast::NumericCast;
let n: i32 = -1;
let len: usize = n.numeric_cast(); // panic here