23 个版本
0.8.3 | 2024 年 7 月 8 日 |
---|---|
0.8.0 | 2023 年 11 月 16 日 |
0.7.1 | 2023 年 5 月 21 日 |
0.7.0 | 2023 年 3 月 31 日 |
0.5.1 | 2022 年 6 月 19 日 |
#180 在 过程宏 中
416,321 每月下载量
用于 262 个 crates (9 直接)
13KB
96 行
在 quote!
中使用 use 语句
描述
一个宏,用于简化在 quote!
宏中使用类型。
用法
quote_use!
宏可以像 quote!
一样使用,但增加了在顶部添加 use 语句的功能
quote_use!{
use std::fs::read;
read("src/main.rs")
}
这将扩展为使用 quote!
的等效语句
quote!{
::std::fs::read::read("src/main.rs")
}
引言
这也允许直接使用 rust 引言的内容
quote_use!{
Some("src/main.rs")
}
覆盖引言
当您想使用自己的类型而不是引言类型时,可以通过如下方式简单地导入它来实现
quote_use!{
use anyhow::Result;
Result
}
不同的引言
默认情况下,quote_use!
使用 std 引言 为 2021 版本,但可以通过功能进行配置,甚至可以完全禁用。
prelude_std
:启用std::prelude::v1
(与prelude_core
不兼容)prelude_core
:启用core::prelude::v1
(与prelude_std
不兼容)prelude_2021
:启用core::prelude::rust_2021
(需要prelude_std
或prelude_core
)
其他 quote 宏
quote_use!
和quote_spanned_use!
分别作为quote!
和quote_spanned!
的替代parse_quote_use!
和parse_quote_spanned_use!
用于parse_quote!
和parse_quote_spanned!
自动命名空间标识符
在 Span::def_site
稳定之前,例如在 proc-macro 扩展中的 let 绑定中的标识符可能会与常量等冲突。
为了避免这种情况,您可以启用功能 namespace_idents
,这将使用模式 "__{crate_name}_{ident}"
将所有标识符替换为自动命名空间的标识符。
依赖关系
~0.4–0.9MB
~21K SLoC