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"))。