#整数 #转换 #转换

无 std atoi

在安全代码中直接从 [u8] 切片中解析整数

13 个版本 (2 个稳定)

2.0.0 2022年10月11日
1.0.0 2022年1月22日
0.4.0 2020年11月20日
0.3.2 2019年11月5日
0.2.2 2017年7月5日

#33 in 解析器实现

Download history 265050/week @ 2024-03-14 267632/week @ 2024-03-21 285907/week @ 2024-03-28 283227/week @ 2024-04-04 304667/week @ 2024-04-11 302530/week @ 2024-04-18 303510/week @ 2024-04-25 310756/week @ 2024-05-02 326867/week @ 2024-05-09 351234/week @ 2024-05-16 352967/week @ 2024-05-23 421298/week @ 2024-05-30 452719/week @ 2024-06-06 422467/week @ 2024-06-13 459240/week @ 2024-06-20 420784/week @ 2024-06-27

1,845,924 每月下载量
用于 1,374 个crate (86 直接)

MIT 许可证

29KB
367

atoi-rs

在安全代码中直接从 [u8] 切片中解析整数

使用此crate的原因

从二进制或ascii格式开始,您可以解析整数,速度比通过utf8的更传统的方法快约三倍。该crate附带基准测试,您可以亲自查看。

FromRadix10Checked trait 还提供了一种非常快速且安全地解析整数的方法,因为它的实现仅对可能溢出的单个数字执行检查运算。

示例

从切片解析

use atoi::atoi;
assert_eq!(Some(42), atoi::<u32>(b"42"));

注意,如果您想了解使用了多少输入,可以使用 FromRadix10 trait,例如

use atoi::FromRadix10;

/// Return the parsed integer and remaining slice if successful.
fn atoi_with_rest<I: FromRadix10>(text: &[u8]) -> Option<(&[u8], I)> {
    match I::from_radix_10(text) {
        (_, 0) => None,
        (n, used) => Some((&[used..], n)),
    }
}

crate 有更多功能!请查看完整的文档docs.rs

依赖关系

~155KB