Avatar ·

Wie erhalte ich Cargo-Paket-Metadaten (Version, Name, Beschreibung) in einem Rust-Programm?

Hallo zusammen! Ich schreibe ein CLI-Tool in Rust und möchte, dass beim Start mit dem Flag `--version` die Programmversion ausgegeben wird. Aber ich möchte den String "0.1.0" nicht hardcoden – das ist unpraktisch, die Version soll nur in `Cargo.toml` geändert werden. Problem: Ich verstehe nicht, wie ich aus dem Rust-Programm selbst die Daten aus `Cargo.toml` lesen kann. Ich habe `std::fs::read_to_string("Cargo.toml")` ausprobiert, aber das funktioniert nur, wenn das Programm aus dem Projektstammverzeichnis gestartet wird. Nach der Installation via `cargo install` liegt die Datei `Cargo.toml` nicht neben dem Binary. Hier ist mein aktueller Code, der natürlich nicht wie gewünscht funktioniert: ```rust fn main() { let version = std::fs::read_to_string("Cargo.toml") .ok() .and_then(|s| { s.lines() .find(|l| l.starts_with("version")) ```