#hex #octal #binary #int #parse-int #primitive-integer

无需 std strtoint

从字符串中解析整数,支持基数前缀

2 个版本

0.1.0 2022 年 11 月 5 日
0.1.0-alpha2022 年 11 月 4 日

169解析工具

Download history 152/week @ 2024-03-22 22/week @ 2024-03-29 2/week @ 2024-04-05 4/week @ 2024-05-31 21/week @ 2024-06-07 20/week @ 2024-06-14 12/week @ 2024-06-21

57 每月下载
用于 2 crates

MIT 许可证

13KB
138

Project Status: Active – The project has reached a stable, usable state and is being actively developed. CI Status codecov.io MIT License

GitHub | crates.io | 文档 | 问题 | 更新日志

strtoint 提供了一个同名的函数,用于从字符串中解析整数文字,支持十六进制、八进制和二进制文字的基数前缀 0x0o0b

此 crate 支持将解析到 Rust 中内置的所有原始整数类型以及它们的 "NonZero" 等效类型。

如果禁用了 std 功能(默认启用),则此 crate 将以无 std 模式构建。唯一的区别是 StrToIntError 只在 std 下实现了 std::error::Error 特性。

安装

strtoint 需要 Rust 1.56 或更高版本。要在您的 Cargo 项目中使用 strtoint 库,请将以下内容添加到您的 Cargo.toml

[dependencies]
strtoint = "0.1.0"

示例

use core::num::NonZeroUsize;
use strtoint::strtoint;

assert_eq!(strtoint::<i32>("123").unwrap(), 123);
assert_eq!(strtoint::<u32>("0xabcd_FFFF").unwrap(), 2882404351);
assert_eq!(strtoint::<i16>("0o644").unwrap(), 420);
assert_eq!(strtoint::<i8>("-0b00101010").unwrap(), -42);
assert!(strtoint::<i64>("42.0").is_err());

assert_eq!(
    strtoint::<NonZeroUsize>("123_456").unwrap(),
    NonZeroUsize::new(123456).unwrap()
);
assert!(strtoint::<NonZeroUsize>("0").is_err());

无运行时依赖