mirror of
https://github.com/darkicewolf50/RustBrock.git
synced 2025-07-07 03:27:13 -06:00
ch7.0 + 7.1 finished
This commit is contained in:
33
Crates.md
Normal file
33
Crates.md
Normal file
@ -0,0 +1,33 @@
|
||||
# Crates
|
||||
The smallest amount of code that the rust compiler will consider
|
||||
|
||||
This includes single binary exe files compiled with ``rustc``
|
||||
|
||||
``cargo build`` also counts and so does ``cargo run`` (implicit ``cargo build``)
|
||||
|
||||
Crates can contain modules and modules may be defined in other files that get compiled with the crate
|
||||
|
||||
It comes in two forms a library or a binary
|
||||
|
||||
## Binary Crates
|
||||
are programs that can be compiled then run like a cli application or a server
|
||||
each must have main function that defines what happens when the executable runs
|
||||
|
||||
## Library Crates
|
||||
are programs that don't have a main function and don't compile to a executable
|
||||
instead it defines functionality that is intended to be shared with multiple projects
|
||||
|
||||
most of the time when the term "crate" is said it means a library crate
|
||||
and crate is used interchangeably with the term library with other languages
|
||||
|
||||
|
||||
## Root Crate
|
||||
this is the source file that the compiler starts from and makes up the root module of your crate
|
||||
|
||||
this is normally src/main.rs in a binary crate
|
||||
scr/lib.rs is normally the root in a library crate with the same name as the package
|
||||
hence why it doesn't need to be mentioned in the toml file this tells you what the packages are
|
||||
|
||||
cargo passes root crates to rustc to build the library or the binary
|
||||
|
||||
by replacing files in the src/bin directory each file will be its own binary crate
|
Reference in New Issue
Block a user