Comment obtenir les métadonnées d'un package Cargo (version, nom, description) dans un programme Rust ?
Bonjour à tous ! Je commence à apprendre Rust et j'écris un petit utilitaire en ligne de commande. Je souhaite que lors de l'exécution avec le flag `--version`, le programme affiche non seulement le numéro de version, mais par exemple : "MyApp v0.2.1 (2024-05-20)".
Le problème est que je ne veux pas coder en dur la version dans le code — ce n'est pas correct, car elle est déjà spécifiée dans le fichier `Cargo.toml`. Comment extraire correctement cette information lors de la compilation ou de l'exécution ?
J'ai essayé de lire le fichier `Cargo.toml` directement, mais cela semble bancal, et dans une build de release, le fichier pourrait ne pas être présent. J'ai entendu parler de la macro `env!()`, mais je ne comprends pas comment la lier à Cargo.
Voici un exemple de ma structure actuelle :
```rust
fn main() {
// Comment obtenir la version depuis Cargo.toml ?
println!("MyApp v{}", get_version());
}
```
J'ai besoin d'obtenir : le nom du package, la version, la description, les auteurs et éventuellement le hash du commit git. Pouvez-vous m'indiquer comment faire cela correctement et de manière idiomatique pour Rust ? Quels sont les crates prêts à l'emploi ou les outils intégrés ? Merci d'avance !
No answers yet.
Connectez-vous pour laisser une réponse