2024-04-21 19:56:00 +00:00
|
|
|
use std::fmt::{self, Display};
|
|
|
|
|
2025-02-09 22:50:03 +01:00
|
|
|
use rustc_macros::{
|
|
|
|
Decodable, Encodable, HashStable_Generic, PrintAttribute, current_rustc_version,
|
|
|
|
};
|
|
|
|
|
|
|
|
use crate::PrintAttribute;
|
2023-10-26 17:18:21 -07:00
|
|
|
|
|
|
|
#[derive(Encodable, Decodable, Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
2025-02-09 22:50:03 +01:00
|
|
|
#[derive(HashStable_Generic, PrintAttribute)]
|
2023-10-26 17:18:21 -07:00
|
|
|
pub struct RustcVersion {
|
|
|
|
pub major: u16,
|
|
|
|
pub minor: u16,
|
|
|
|
pub patch: u16,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl RustcVersion {
|
2023-11-08 17:05:44 +11:00
|
|
|
pub const CURRENT: Self = current_rustc_version!();
|
2023-10-26 17:18:21 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
impl Display for RustcVersion {
|
|
|
|
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
|
|
write!(formatter, "{}.{}.{}", self.major, self.minor, self.patch)
|
|
|
|
}
|
|
|
|
}
|