Rust anatomy: Difference between revisions
From wikinotes
No edit summary |
|||
Line 31: | Line 31: | ||
</blockquote><!-- Crates --> | </blockquote><!-- Crates --> | ||
== Modules == | |||
<blockquote> | |||
Module names govern where they can be found within the filesystem.<br> | |||
Module locations are based on where they are defined | |||
from the rust book: | |||
<pre> | |||
backyard | |||
├── Cargo.lock | |||
├── Cargo.toml | |||
└── src | |||
├── garden | |||
│ └── vegetables.rs | |||
├── garden.rs | |||
└── main.rs | |||
</pre> | |||
The module <code>foo</code>'s code could be | |||
* <code>src/foo.rs</code> | |||
* <code>src/foo/mod.rs</code> | |||
</blockquote><!-- Modules --> | |||
</blockquote><!-- Project Components --> | </blockquote><!-- Project Components --> |
Revision as of 22:47, 7 February 2023
Project Components
A rust project comprises of
packages build/test/share a collection of crates crates tree of modules that build a single library, or executable modules organize scope/privacy of paths paths files ? Packages
A package is a collection of crates.
- it may have multiple executable crates
- it may only have one library crate
Crates
A crate can be either
- a library (has
src/lib.rs
entrypoint)- an executable (has
src/main.rs
entrypoint)Modules
Module names govern where they can be found within the filesystem.
Module locations are based on where they are definedfrom the rust book:
backyard ├── Cargo.lock ├── Cargo.toml └── src ├── garden │ └── vegetables.rs ├── garden.rs └── main.rsThe module
foo
's code could be
src/foo.rs
src/foo/mod.rs