9个版本
0.3.1 | 2024年7月14日 |
---|---|
0.3.0 | 2024年5月31日 |
0.2.1 | 2024年2月12日 |
0.1.4 | 2023年9月10日 |
0.1.1 | 2021年8月30日 |
#57 in WebAssembly
16,569 个月下载量
在 10 个crates中使用 (4 直接)
32KB
705 代码行
sprintf-rs
Rust中C sprintf的克隆
创建此crates是为了在WASM程序(其中没有libc)中提供C printf风格的格式化。
注意: 除非您确实需要printf兼容性,否则您可能更愿意使用标准的Rust字符串格式化而不是此crates。
此crates实现了一个动态类型检查函数vsprintf
和宏sprintf!
。
使用示例
use sprintf::sprintf;
let s = sprintf!("%d + %d = %d\n", 3, 9, 3+9).unwrap();
assert_eq!(s, "3 + 9 = 12\n");
libc
是一个开发依赖项,因为它在测试中用于比较结果。std
用于某些数学函数。
lib.rs
:
用Rust编写的Libc s(n)printf克隆,因此您可以在没有libc的情况下使用printf风格的格式化(例如在WebAssembly中)。
注意: 除非您确实需要printf兼容性,否则您可能更愿意使用标准的Rust字符串格式化而不是此crates。
它遵循标准的C语义,但
- 区域感知UNIX扩展(
'
和GNU的I
)不受支持。 %a
/%A
(十六进制浮点数)目前未实现。- 长度修饰符(
h
,l
等)已检查,但忽略。使用传递的类型。
使用示例
use sprintf::sprintf;
let s = sprintf!("%d + %d = %d\n", 3, 9, 3+9).unwrap();
assert_eq!(s, "3 + 9 = 12\n");
在运行时检查参数的类型。
依赖项
~275–730KB
~17K SLoC