#cast #numbers #numeric #safely #cases #reduce #type

no-std numeric_cast

安全地在数字之间进行转换

3 个不稳定版本

0.2.1 2022 年 10 月 28 日
0.2.0 2022 年 8 月 21 日
0.1.2 2022 年 5 月 15 日
0.1.1 2022 年 5 月 15 日
0.1.0 2022 年 5 月 15 日

#2338Rust 模式

Download history 1760/week @ 2024-04-26 1452/week @ 2024-05-03 1656/week @ 2024-05-10 1339/week @ 2024-05-17 1126/week @ 2024-05-24 1998/week @ 2024-05-31 1667/week @ 2024-06-07 1337/week @ 2024-06-14 1668/week @ 2024-06-21 1125/week @ 2024-06-28 818/week @ 2024-07-05 1403/week @ 2024-07-12 1221/week @ 2024-07-19 1284/week @ 2024-07-26 1450/week @ 2024-08-02 1011/week @ 2024-08-09

5,339 每月下载量
用于 13crate(5 个直接使用)

MIT 许可证

22KB
679

numeric_cast

Latest Version Documentation License Unsafe Forbidden

安全地在数字之间转换。

文档:https://docs.rs/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

无运行时依赖项