My understanding is that extern crate foo;
declarations in the root module are then importable in any submodule with use foo::bar
. While this works in one submodule, it doesn't work in the other submodule. Any ideas why this might not work?
|--- main.rs
|--- module1
|--- mod.rs
|--- submod1.rs
|--- module2
|--- mod.rs
|--- submod2.rs
// main.rs
extern crate rustc_serialize;
mod module1;
mod module2;
// module1/mod.rs
mod submod1;
// module1/submod1.rs
use rustc_serialize::json; // WORKS
// module2/mod.rs
mod submod2;
// module2/submod2.rs
use rustc_serialize::json; // DOESN'T WORK
EDIT: I forgot that in my project, module1
is defined as a library crate, which detached it from the usual import namespaces