diff options
Diffstat (limited to 'compiler/rustc_attr_data_structures/src/version.rs')
| -rw-r--r-- | compiler/rustc_attr_data_structures/src/version.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/compiler/rustc_attr_data_structures/src/version.rs b/compiler/rustc_attr_data_structures/src/version.rs new file mode 100644 index 00000000000..6be875ad4be --- /dev/null +++ b/compiler/rustc_attr_data_structures/src/version.rs @@ -0,0 +1,21 @@ +use std::fmt::{self, Display}; + +use rustc_macros::{Decodable, Encodable, HashStable_Generic, current_rustc_version}; + +#[derive(Encodable, Decodable, Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive(HashStable_Generic)] +pub struct RustcVersion { + pub major: u16, + pub minor: u16, + pub patch: u16, +} + +impl RustcVersion { + pub const CURRENT: Self = current_rustc_version!(); +} + +impl Display for RustcVersion { + fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(formatter, "{}.{}.{}", self.major, self.minor, self.patch) + } +} |
