Compiler version cfg
This crate provides macros for conditional compilation according to rustc
compiler version, analogous to #[cfg(...)] and
#[cfg_attr(...)].
[]
= "0.1"
Selectors
-
#[rustversion::stable]— True on any stable compiler. -
#[rustversion::stable(1.34)]— True on exactly the specified stable compiler. -
#[rustversion::beta]— True on any beta compiler. -
#[rustversion::nightly]— True on any nightly compiler or dev build. -
#[rustversion::nightly(2019-01-01)]— True on exactly one nightly. -
#[rustversion::since(1.34)]— True on that stable release and any later compiler, including beta and nightly. -
#[rustversion::since(2019-01-01)]— True on that nightly and all newer ones. -
#[rustversion::before(version or date)]— Negative of #[rustversion::since(...)]. -
#[rustversion::not(selector)]— Negative of any selector; for example #[rustversion::not(nightly)]. -
#[rustversion::any(selectors...)]— True if any of the comma-separated selectors is true; for example #[rustversion::any(stable, beta)]. -
#[rustversion::all(selectors...)]— True if all of the comma-separated selectors are true; for example #[rustversion::all(since(1.31), before(1.34))]. -
#[rustversion::attr(selector,attribute)]— For conditional inclusion of attributes; analogous tocfg_attr.
Use cases
Providing additional trait impls as types are stabilized in the standard library without breaking compatibility with older compilers; in this case Pin<P> stabilized in Rust 1.33:
use Pin;
Similar but for language features; the ability to control alignment greater than 1 of packed structs was stabilized in Rust 1.33.
;
Augmenting code with const as const impls are stabilized in the standard
library. This use of const as an attribute is recognized as a special case by
the rustversion::attr macro.
use Duration;