3 个版本
0.1.2 | 2024 年 3 月 14 日 |
---|---|
0.1.1 | 2024 年 3 月 13 日 |
0.1.0 | 2024 年 3 月 13 日 |
#907 in Rust 模式
57 次每月下载
19KB
398 行
标准库中 write!
和 writeln!
宏的大小优化版本。
为什么要使用这些宏?
在代码大小受限且进行字符串格式化的系统中,使用 write!
或 writeln!
宏可能会比直接写入内容生成更大的代码,即使在链接和内联之后。
此 crate 提供的 write!
和 writeln!
宏会检测写操作是否可以优化为使用 write_str
(对于 fmt::Write
)或 write
(对于 io::Write
)的直接写入,并调用这些函数而不是 format_args!
和 write_fmt
。
lib.rs
:
标准库中 write!
和 writeln!
宏的大小优化版本
为什么要使用这些宏?
在代码大小受限且进行字符串格式化的系统中,使用 write!
或 writeln!
宏可能会比直接写入内容生成更大的代码,即使在链接和内联之后。
此 crate 提供的 write!
和 writeln!
宏会检测写操作是否可以优化为使用 write_str
(对于 fmt::Write
)或 write
(对于 io::Write
)的直接写入,并调用这些函数而不是 format_args!
和 write_fmt
。
std
功能
默认情况下,此crate是#![no_std]
,并且仅支持fmt::Write
。要写入io::Write
目标,请启用std
功能。
已知缺点
这些宏
- 针对特质的
write_str
方法,使用内部适配器在io::Write
上公开write_str
。 - 当前不接收格式字符串中的
concat!
。 - 不优化嵌套的
format_args!
,如write!(w, "{}", format_args!("x"))
。