You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Shell命令打印Rust的模块与类型路径?

如何打印Rust项目的模块与类型路径并理解路径语法

一、获取项目模块/类型路径的实用方法

不需要专门的cargo print-modules命令,用现有工具就能满足需求:

  • 用cargo tree直接列模块
    执行cargo tree --modules,会直接输出项目中所有模块的层级路径,格式就是你需要的mylib、mylib::module1这类,完全可以直接用于cargo expand、cargo test等命令。如果需要同时列出类型,用cargo tree --types,会显示所有类型的完整路径。

  • 通过cargo doc查看规范路径
    执行cargo doc --open生成并打开项目文档,文档里的每个模块、类型、函数都标注了完整的引用路径,这个路径是官方认可的、可直接用于Cargo命令的格式,同时还能看到路径的上下文关系。

  • 用rust-analyzer符号查询
    如果你安装了rust-analyzer,执行rust-analyzer symbols --all,会输出项目内所有符号(模块、类型、函数等)的完整路径,输出格式清晰,比如mylib::module1::MyStruct,直接就能拿来用。

二、路径语法的常见疑问解答

  • mylib::module1 vs ::mylib::module1:两种格式在Cargo命令中大多都能生效。::mylib::module1是绝对路径写法(明确从crate根开始),而mylib::module1是简化写法,在同一个工作区(workspace)或者当前项目上下文里,Cargo会自动识别crate名称,无需开头的::。
  • 当前crate内部模块引用:如果是操作当前crate的模块,直接写module1::submodule或者crate::module1::submodule都可以,cargo test和cargo expand都能识别。
  • 跨crate引用:如果是引用其他依赖crate的模块/类型,直接写crate_name::module::Type即可,比如serde::Serialize,不需要加开头的::。

内容的提问来源于stack exchange,提问作者JamesThomasMoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 16:17:26