5 个版本
0.8.3 | 2024年7月8日 |
---|---|
0.8.2 | 2024年7月7日 |
0.8.1 | 2024年7月7日 |
0.8.0 | 2023年11月16日 |
0.7.2 | 2023年9月3日 |
#2114 in 过程宏
354,433 每月下载量
在 254 个crate中(通过 quote-use)使用
18KB
347 行
在 quote!
中使用use语句
描述
一个简化在 quote!
宏中使用类型的宏。
用法
可以像 quote!
一样使用 quote_use!
宏,但增加了在顶部添加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_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.3–0.8MB
~19K SLoC