7 个版本

0.3.1 2020年7月3日
0.3.0 2020年4月21日
0.2.3 2020年3月21日
0.1.0 2020年2月24日

#1575解析器实现

Download history 23/week @ 2024-04-05 23/week @ 2024-04-12 27/week @ 2024-04-19 25/week @ 2024-04-26 23/week @ 2024-05-03 28/week @ 2024-05-10 29/week @ 2024-05-17 19/week @ 2024-05-24 31/week @ 2024-05-31 61/week @ 2024-06-07 30/week @ 2024-06-14 27/week @ 2024-06-21 13/week @ 2024-06-28 27/week @ 2024-07-05 85/week @ 2024-07-12 40/week @ 2024-07-19

168 每月下载量
4 个crate中使用 (直接使用2个)

MIT/Apache

27KB
510

Hexponent

一个用于解析十六进制浮点数的库。

文档

文档可以在 https://docs.rs/hexponent/ 找到

待办事项

查看 问题

许可证

许可协议为以下之一

贡献

除非你明确声明,否则任何有意提交以包含在作品中的贡献,根据 Apache-2.0 许可证定义,将按上述方式双重许可,没有任何额外的条款或条件。


lib.rs:

Hexponent

Hexponent 是一个基于 C11 规范第 6.4.4.2 节的 Rust 十六进制字面量解析器。

use hexponent::FloatLiteral;
let float_repr: FloatLiteral = "0x3.4".parse().unwrap();
let value = float_repr.convert::<f32>().inner();
assert_eq!(value, 3.25);

Hexponent 的最低支持 Rust 版本为 1.34。

特性

  • 无依赖
  • 非 UTF-8 解析器
  • 精度警告
  • no_std 支持 (MSRV 1.36.0)

与规范的不同之处

hexponent 有两个地方与 C11 规范不同。

  • 指数不是必需的。(0x1.2 是允许的)
  • floating-suffix 不会被解析。(0x1p4l 是不允许的)

no_std 支持

no_std 支持可以通过禁用 Cargo.toml 中 hexponent 的默认 std 功能来启用。

hexponent = {version = "0.2", default-features = false}

no_std 支持仅适用于 rustc 版本 1.36.0 及以上。

禁用 std 功能目前仅禁用 std::error::Error 实现,用于 ParseError

无运行时依赖