Cargo meneruskan beberapa metadata ke kompiler melalui variabel lingkungan, daftar yang dapat ditemukan di halaman dokumentasi Cargo .
Lingkungan kompiler diisi oleh fill_env
dalam kode Cargo. Kode ini menjadi lebih kompleks sejak versi sebelumnya, dan seluruh daftar variabel tidak lagi jelas karena bisa dinamis. Namun, setidaknya variabel-variabel berikut diatur di sana (dari daftar di dokumen):
CARGO_MANIFEST_DIR
CARGO_PKG_AUTHORS
CARGO_PKG_DESCRIPTION
CARGO_PKG_HOMEPAGE
CARGO_PKG_NAME
CARGO_PKG_REPOSITORY
CARGO_PKG_VERSION
CARGO_PKG_VERSION_MAJOR
CARGO_PKG_VERSION_MINOR
CARGO_PKG_VERSION_PATCH
CARGO_PKG_VERSION_PRE
Anda dapat mengakses variabel lingkungan menggunakan env!()
makro. Untuk memasukkan nomor versi program Anda, Anda dapat melakukan ini:
const VERSION: &'static str = env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION);
Jika Anda ingin program Anda dikompilasi bahkan tanpa Cargo, Anda dapat menggunakan option_env!()
:
const VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");
// ...
println!("MyProgram v{}", VERSION.unwrap_or("unknown"));