Cargo はコンパイル時に環境変数 CARGO_PKG_VERSION
をセットする。これを env!()
マクロで取得すればよい。
fn print_help() {
println!("myapp version {}", env!("CARGO_PKG_VERSION"));
// => myapp version 1.2.3-beta.1
}
コンパイル時に Cargo がセットする環境変数の一覧:
環境変数 値の一例
--------------------------------------------
CARGO_MANIFEST_DIR /path/to/my-crate
CARGO_PKG_VERSION 1.2.3-beta.1
CARGO_PKG_VERSION_MAJOR 1
CARGO_PKG_VERSION_MINOR 2
CARGO_PKG_VERSION_PATCH 3
CARGO_PKG_VERSION_PRE beta.1
(参考: https://github.com/rust-lang/cargo/blob/0.3.0/src/cargo/ops/cargo_rustc/compilation.rs#L110-L116 )