Crate rustc_version[−][src]
Simple library for getting the version information of a rustc
compiler.
This can be used by build scripts or other tools dealing with Rust sources to make decisions based on the version of the compiler.
It calls $RUSTC --version -v
and parses the output, falling
back to rustc
if $RUSTC
is not set.
Example
// This could be a cargo build script extern crate rustc_version; use rustc_version::{version, version_meta, Channel, Version}; fn main() { // Assert we haven't travelled back in time assert!(version().unwrap().major >= 1); // Set cfg flags depending on release channel match version_meta().unwrap().channel { Channel::Stable => { println!("cargo:rustc-cfg=RUSTC_IS_STABLE"); } Channel::Beta => { println!("cargo:rustc-cfg=RUSTC_IS_BETA"); } Channel::Nightly => { println!("cargo:rustc-cfg=RUSTC_IS_NIGHTLY"); } Channel::Dev => { println!("cargo:rustc-cfg=RUSTC_IS_DEV"); } } // Check for a minimum version if version().unwrap() >= Version::parse("1.4.0").unwrap() { println!("cargo:rustc-cfg=compiler_has_important_bugfix"); } }
Structs
Version |
Represents a version number conforming to the semantic versioning scheme. |
VersionMeta |
Rustc version plus metada like git short hash and build date. |
Enums
Channel |
Release channel of the compiler. |
Error |
The error type for this crate. |
Functions
version |
Returns the |
version_meta |
Returns the |
version_meta_for |
Parses a "rustc -vV" output string and returns the SemVer version and additional metadata like the git short hash and build date. |
Type Definitions
Result |
The result type for this crate. |