#scan #enums #traits #struct #workspace #file #type

scan-crate-for-typedefs

简单的 crate — 允许扫描 crate(s) 中本地定义的结构体、枚举、类型、函数和特性

7 个版本 (破坏性更新)

0.8.0 2023 年 9 月 20 日
0.7.0 2023 年 9 月 20 日
0.6.0 2023 年 9 月 15 日
0.5.0 2023 年 9 月 14 日
0.1.0 2023 年 9 月 14 日

#127#scan

每月 43 次下载

MIT 许可证

36KB
566

概述

这是一个简单的 crate,允许我们扫描当前工作空间中的一个或所有 crate。

我们还可以用它来扫描 vendored crate。

这有助于我们在 crate 中直接搜索特性、函数、结构体、枚举、类型名称和宏定义。

该 crate 使用 rust-analyzer API 来执行繁重的任务。

用法

我通常这样使用它

[build-dependencies]
scan-crate-for-typedefs = "0.6.0"
//this is the `build.rs` file for one of the most
// stable crates in the workspace:

use scan_crate_for_typedefs::*;

fn main() -> std::io::Result<()> {

    let typemap = PersistentWorkspaceTypeMap::new_with_path("..")?;

    Ok(())
}

然后,我们只需要构建项目,我们就会在顶层得到一个 rust-workspace-typemap.json

我通常解析 cargo build 的输出以找到找不到的类型。

接下来,我扫描文件中包含的索引,以确定它们属于哪个 crate。

依赖项

~13–24MB
~366K SLoC