#unsigned-integer #integer #formatting #printing #signed-integer #thousands #byte-slice

dactyl

一个用于快速将整数转换为字符串的格式化库

34 个版本

0.7.2 2024 年 7 月 25 日
0.7.0 2024 年 2 月 8 日
0.6.0 2023 年 10 月 16 日
0.5.1 2023 年 7 月 13 日
0.1.7 2021 年 3 月 17 日

值格式化 中排名 #26

Download history 92/week @ 2024-04-29 64/week @ 2024-05-06 72/week @ 2024-05-13 303/week @ 2024-05-20 104/week @ 2024-05-27 106/week @ 2024-06-03 100/week @ 2024-06-10 54/week @ 2024-06-17 80/week @ 2024-06-24 36/week @ 2024-07-01 42/week @ 2024-07-08 70/week @ 2024-07-15 352/week @ 2024-07-22 83/week @ 2024-07-29 91/week @ 2024-08-05 101/week @ 2024-08-12

639 每月下载量
17 Crates 中使用 (5 个直接使用)

WTFPL 许可证

180KB
3.5K SLoC

Dactyl

docs.rs changelog
crates.io ci deps.rs
license contributions welcome

此crate提供了一个快速接口,用于将无符号整数格式化为带逗号的字符串。它优先考虑速度和简单性,而不是可配置性。

如果您的应用程序只想将 1010 快速转换为 "1,010",Dactyl 是一个不错的选择。如果您的应用程序需要区域感知或其他选项,那么像 num-format 这样的工具可能更合适。

类似于 itoa,Dactyl 将ASCII转换写入临时缓冲区,但使用固定大小的数组,这些数组针对每种类型的最大值进行大小调整,最小化了例如对微小的 u8 的分配开销。

每种类型都有自己的结构体,它们的工作方式完全相同

  • NiceU8
  • NiceU16
  • NiceU32
  • NiceU64 (也适用于 usize)
  • NiceFloat
  • NiceElapsed (用于持续时间)
  • NicePercent (用于表示百分比的浮点数)

预期的用例是简单地调用对应类型的合适 from(),然后使用 as_str()as_bytes() 结构方法来以所需格式检索输出。每个结构还实现了诸如 DerefDisplayAsRef<str>AsRef<[u8]> 等特质,如果您需要这些的话。

use dactyl::NiceU16;

assert_eq!(NiceU16::from(11234_u16).as_str(), "11,234");
assert_eq!(NiceU16::from(11234_u16).as_bytes(), b"11,234");

但美好之处不止于此。Dactyl 提供了多个其他结构、方法和特质,以高效地处理整数,例如

  • NoHash:整数 HashSet/HashMap 集合的透传哈希器
  • traits::BytesToSigned:从字节切片解析有符号整数
  • traits::BytesToUnsigned:从字节切片解析无符号整数
  • traits::HexToSigned:从十六进制解析有符号整数
  • traits::HexToUnsigned:从十六进制解析无符号整数

安装

dactyl 添加到您的 dependencies 中的 Cargo.toml,如下所示

[dependencies]
dactyl = "0.7.*"

许可证

另请参阅:CREDITS.md

版权所有 © 2024 Blobfolio, LLC <[email protected]>

本作品是免费的。您可以在 Do What The Fuck You Want To Public License,版本 2 的条款下重新分发或修改它。

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.

无运行时依赖