我正在尝试阅读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