Here is my directory structure:
lowks@lowkster ~/src/rustlang/gettingrusty $ tree .
.
├── Cargo.lock
├── Cargo.toml
├── foo.txt
├── src
│ ├── boolean_examp
The Rust compiler compiles all the files at the same time to build a crate, which is either an executable or a library. To add files to your crate, add mod
items to your crate root (here, main.rs) or to other modules:
mod boolean_example;
mod function_goodbye_world;
mod listdir;
mod looping;
mod pattern_match;
mod write_to_file;
To access items defined in another module from your crate root, you must qualify that item with the module name. For example, if you have a function named foo
in module looping
, you must refer to it as looping::foo
.
You can also add use
statements to import names in the module's scope. For example, if you add use looping::foo;
, then you can just use foo
to refer to looping::foo
.
For more information, see Separating Modules into Different Files in The Rust Programming Language.