How to use one module from another module in a Rust cargo project?
Solution 1:
You'll have to include b.rs
somewhere, typically with mod b;
. If b
is a child of a
(instead of being a sibling of a
), there are two ways to do this:
-
Recommended: rename
a.rs
intoa/mod.rs
andb.rs
intoa/b.rs
. Then you canmod b;
ina/mod.rs
. - Instead, you can just
#[path = "b.rs"] mod b;
ina.rs
without renaming sources.
If b
is intended to be a sibling of a
(instead of being a child of a
), you can just mod b;
in main.rs
and then use crate::b;
in a.rs
.
Solution 2:
The method from the accepted answer doesn't work for me in Rust 1.33. Instead, I use the sibling module like this:
use crate::b;