Files
.gitea
.github
.obsidian
HelloWorld
adder
branches
functions_rust
guessing_game
hello_cargo
loops
minigrep
ownership
rectangles
.gitignore
Closures.md
Collection of Common Data Structs.md
Constants.md
Crates.md
Data Types.md
Enums.md
Error Handling.md
Generic Types Traits and Lifetimes.md
Generics.md
Hash.md
Improving The IO Project.md
Iterators and Closures.md
Iterators.md
Lifetimes.md
Modules and Use.md
Packages.md
Paths.md
Primitives.md
Project Organization.md
README.md
Reducing_Code_Duplication.md
RustBrock.code-workspace
String.md
Structures.md
Test Controls.md
Test_Organization.md
Tests.md
The preformance Closures and Iterators.md
Traits.md
Variables.md
Vector.md
Writing_Tests.md
data_types.md
ownership.md
RustBrock/Packages.md
2025-01-16 21:45:30 -07:00

34 lines
963 B
Markdown

# Packages
a bundle of one or more crates that provides a set functionality
it contains a cargo.toml file and describes how to build those crates
packages can have as many binary crates as you want but only at most one library crate
packages must have at least one crate
packages are defined by the toml file that comes with creating a new crate
# External Packages
These crates are normally found on [crates.io](https://crates.io/)
in the guessing game the external crate was first defined in the cargo.toml as
```toml
rand = "0.8.5"
```
it was then brough into scope by
```rust
use rand::Rng;
// and then used
rand::thread_rng().gen_range(0..=100);
```
pulling other modules is often the same process
the std library is an external package but it doesn't need to be specified in the toml file
but it does need to be brought into scope with the ``use`` keyword
the std::other_part is an absolute path starting with std for the standard library crate