Ce face cargo new
cargo new salut creează directorul salut cu tot ce trebuie pentru un program: Cargo.toml (numele, versiunea, ediția și dependențele) și src/main.rs cu un „Hello, world!”. Inițializează și un depozit git cu un .gitignore care exclude directorul target/.
--lib creează o bibliotecă: în loc de main.rs apare src/lib.rs, cu o funcție exemplu și un test. cargo init face același lucru în directorul curent, util când directorul există deja.
Numele proiectului devine numele pachetului și al executabilului. Folosește litere mici și _ sau -; în cod, un nume cu - se scrie cu _ (use calcule_note::...).
Parametri
| Parametru | Descriere |
|---|---|
--lib |
Creează o bibliotecă (src/lib.rs) în loc de program. |
--bin |
Creează un program (implicit). |
--edition |
Ediția limbajului (implicit 2024). |
--vcs |
Sistemul de versiuni: git (implicit) sau none. |
--name |
Numele pachetului, dacă vrei altul decât numele directorului. |
Exemple
Exemplul 1: Un program nou
După cargo new proiectul se poate rula imediat cu cargo run.
$ cargo new salut
$ cd salut
$ ls -a
$ ls src
$ cat Cargo.toml src/main.rs
Rezultat în terminal
Creating binary (application) `salut` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
. .. .git .gitignore Cargo.toml src
main.rs
[package]
name = "salut"
version = "0.1.0"
edition = "2024"
[dependencies]
fn main() {
println!("Hello, world!");
}
Exemplul 2: O bibliotecă nouă
src/lib.rs conține o funcție publică și un modul de teste, gata de rulat cu cargo test.
$ cargo new --lib calcule
$ cat calcule/src/lib.rs
Rezultat în terminal
Creating library `calcule` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
pub fn add(left: u64, right: u64) -> u64 {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}
Greșeli frecvente
- Rulezi
cargo newîntr-un director care există deja:destination `...` already exists. Intră în director și foloseștecargo init. - Folosești majuscule sau spații în nume. Cargo acceptă unele dintre ele cu avertisment, dar convenția este
snake_casesaukebab-case. - Pui proiectul în git fără
.gitignore(de exemplu după--vcs none) și urci directorultarget/, care poate avea sute de MB.
Comenzi înrudite
Cargo.toml: Fișierul de configurare al unui proiect Rust (în format TOML): numele și versiunea, ediția, dependențele, funcționalitățile și setările de compilare.cargo run: Compilează proiectul dacă s-a schimbat ceva și pornește programul. Argumentele de după – sunt trimise programului.cargo build: Compilează proiectul și dependențele lui. Executabilul ajunge în target/debug/ sau, cu –release, optimizat în target/release/.main: Funcția cu care începe orice program Rust: este apelată automat la pornire, iar programul se termină când ea se termină.module și vizibilitate (mod, pub, crate, super): mod împarte codul în module; tot ce este într-un modul este privat implicit, iar pub îl face vizibil. crate și super încep căile.