Wie erhalte ich Cargo-Paket-Metadaten (Version, Name, Beschreibung) in einem Rust-Programm?
Hallo zusammen! Ich lerne gerade Rust und schreibe ein kleines Command-Line-Tool. Ich möchte, dass das Programm beim Start mit dem Flag `--version` nicht nur die Versionsnummer ausgibt, sondern zum Beispiel: "MyApp v0.2.1 (2024-05-20)".
Das Problem ist, dass ich die Version nicht hardcoden möchte – das ist falsch, da sie bereits in der Datei `Cargo.toml` angegeben ist. Wie kann ich diese Informationen während der Kompilierung oder Laufzeit korrekt extrahieren?
Ich habe versucht, die Datei `Cargo.toml` direkt zu lesen, aber das wirkt wie ein Workaround, und in einer Release-Build könnte die Datei fehlen. Ich habe vom Makro `env!()` gehört, verstehe aber nicht, wie ich es mit Cargo verbinden kann.
Hier ist ein Beispiel meiner aktuellen Struktur:
```rust
fn main() {
// Wie erhalte ich die version aus Cargo.toml?
println!("MyApp v{}", get_version());
}
```
Ich muss Folgendes erhalten: Paketname, Version, Beschreibung