rust - 在另一个 crate 中查找特定“proc-macro”的所有调用
问题描述
我有一个构建脚本,我可以通过cargo_metadata访问关于另一个箱子的大量信息。
现在我正在寻找proc-macro
在另一个箱子中找到特定的所有调用的方法。
从理论上讲,我可以自己解析另一个箱子的来源,但出于众所周知的原因,我更愿意以任何可能的方式避免它:-)
理想情况下,我正在寻找编译器已经使用的板条箱。或者至少以某种方式使用编译器的输出来收集此类信息的板条箱。
但任何解决方案都会有所帮助!
从我的代码预期来看,理想的解决方案可能看起来如何:
use proc_macro::TokenStream;
use some_cool_crate::macros_lookup;
use some_cool_crate::Macros;
let path_to_another_crates_cargo_toml = "/path/to/another_crate/Cargo.toml";
let macros = Macros {
name: "my_macro",
crate: "macro_original_crate",
};
// The thing I'm looking for:
macros_lookup(
path_to_another_crates_cargo_toml,
¯os,
|attr: TokenStream, input: TokenStream,| {
// there I'll do some interesting stuff
},
);
Cargo.toml
PS 目前我从's 的自定义部分获取信息,[package.metadata]
但它需要我Cargo.toml
与来源保持同步。
PPS 我做所有“酷”东西的原因被打破了为 cdylib 重新导出 C 符号
解决方案
推荐阅读
- javascript - 如何使用 if 条件设置多个 getelementsbyid
- angular - Cordova Angular 应用程序(反向)代理配置
- c++ - GtkStatusIcon 不显示自定义图标
- spring - 否决父 bean 的属性
- java - FileOutputStream 设置编码,将字节写入文件
- javascript - 打字稿函数接受单个字符串或字符串数组
- c++ - Mandelbrot 的算法在不使用复数的情况下无法给出所需的结果
- sql - SQL - 比较多行值
- microsoft-graph-api - Microsoft 图形状态订阅引发异常:任务已取消
- reactjs - 如何在 react-admin 的 AuthProvider 中配置 getPermissions() 方法?