我正在尝试阅读servo的代码。例如,我正在看this code in layout_task.rs:

use url::Url;

..并且我想知道这是指哪个代码(答案是rust-url)。

最佳答案

根据Rust reference §6.1.2.2 Use declarations



引用(§5 Crates and source files)并未明确说明“ crate 根”是什么,但确实具有以下共同点:



因此,似乎要找到当前文件(layout_task.rs)所属的 crate 根,我们需要弄清楚在构建 crate 时将调用哪个源文件rustc。对于Cargo,这是在Cargo.toml中指定的,默认为src/lib.rs:

[lib]
path = "src/lib.rs"

就我而言,这是Cargo.toml,而lib.rs具有:
extern crate url;
pub mod layout_task;

到目前为止,一切都很好。为了找出extern crate所指的是什么,我们需要再次查看Cargo.toml:
[dependencies.url]
version = "0.2"

cargo docs声称“来自crates.io的依赖项未用单独的节声明”,但显然它们可以...因此,我们在crates.io上查找了该程序包:https://crates.io/crates/url

10-08 00:40