我正在尝试阅读伺服代码.作为一个例子,我在layout_task.rs中查看此代码:
use url::Url;
Run Code Online (Sandbox Code Playgroud)
..我想知道这是指哪个代码(答案是rust-url).
use物品中包含的路径相对于箱根 [...]也可以使用
self,并super在年初use项目分别指当前和直接父模块.有关在
use声明中访问声明的模块的所有规则都适用于模块声明和extern crate声明.
引用(§5Crates和源文件)没有明确说明"crate root"是什么,但它确实分享了:
包中包含嵌套模块范围的树.这个树的顶层是一个匿名的模块[...] Rust编译器总是用一个源文件作为输入调用,并且总是产生一个输出包.处理该源文件可能导致其他源文件作为模块加载.
因此,为了找到当前文件(layout_task.rs)所属的crate根,我们需要弄清楚rustc在构建crate时调用的源文件.使用Cargo,这在Cargo.toml中指定,默认为src/lib.rs:
[lib]
path = "src/lib.rs"
Run Code Online (Sandbox Code Playgroud)
在我的例子中,这里的Cargo.toml和lib.rs有:
extern crate url;
pub mod layout_task;
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.要找出extern crate所指的内容,我们需要再次查看Cargo.toml:
[dependencies.url]
version = "0.2"
Run Code Online (Sandbox Code Playgroud)
该货物的文档声称"从crates.io的依赖不会被分开的部分申报",但显然他们可以... ...所以我们看包起来的crates.io:https://crates.io/crates/url
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |