从命令行打印模块和类型的路径

编程语言 2026-07-10

如何把Rust的各种模块和类型的路径作为一个shell命令打印出来?

一些cargo工具提供一个选项,可以传入一个模块路径,将操作限定在该段代码区域。
例如,cargo expand 接受 cargo expand mylib::module1。而 cargo test 也接受类似的模块路径。

我希望有一个假设的命令,比如 cargo print-modules,它可能输出如下内容

$ cargo print-modules
mylib
mylib::module1
mylib::module1::my_const
mylib::module2
mylib::module2::my_func

有时我不确定路径的语法是什么(是 mylib::module1 吗?是 ::module1?是 module1?还是 crate::module1?)。

我想查看所有可用的模块和类型路径。

解决方案

两种常见的做法是使用 cargo doc,或者触发一个编译错误以在错误信息中看到模块名称。

cargo doc --open

或引入一个编译错误并执行 cargo check

如果你想要第三方插件,那么 cargo-modules 可能会有帮助。例如

$ cargo install cargo-modules
$ cargo modules structure
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章