Ric*_*ast 8 code-generation rust rust-macros
我开始学习Rust宏,但文档有些限制.哪个好 - 我猜他们是专家.虽然我可以进行基本的代码生成,特性的实现等等,但是一些内置的宏似乎远不止于此,例如各种打印宏,它们检查字符串文字并将其用于代码扩展.
我查看了源代码print!,它调用了另一个名为的宏format_args.不幸的是,这似乎并没有构建在"纯Rust"中,评论只是说"内置编译器".
是否可以编写像print!纯Rust宏一样复杂的东西?如果是这样,它会怎么做?
我实际上对构建"编译时间"感兴趣 - 基本上将某些固定字符串识别为在编译时修复的"关键字".这可能是高性能的(可能)但主要是我只对代码生成感兴趣.
Rust 宏无法解析字符串文字,因此不可能创建format_args!.
您可以做的是使用宏将类似函数调用的语法转换为以某种方式表示 Rust 类型系统中的可变参数列表的东西(例如,作为异构单链表或构建器类型) 。然后可以将其与格式字符串一起传递给常规 Rust 函数。但是您将无法通过这种方式实现格式字符串的编译时类型检查。
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |