#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_version {
() => {
env!("CARGO_PKG_VERSION")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_version_major {
() => {
env!("CARGO_PKG_VERSION_MAJOR")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_version_minor {
() => {
env!("CARGO_PKG_VERSION_MINOR")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_version_patch {
() => {
env!("CARGO_PKG_VERSION_PATCH")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_version_pre {
() => {
env!("CARGO_PKG_VERSION_PRE")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_authors {
() => {
env!("CARGO_PKG_AUTHORS")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_name {
() => {
env!("CARGO_PKG_NAME")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_description {
() => {
env!("CARGO_PKG_DESCRIPTION")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_homepage {
() => {
env!("CARGO_PKG_HOMEPAGE")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_repository {
() => {
env!("CARGO_PKG_REPOSITORY")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_license {
() => {
env!("CARGO_PKG_LICENSE")
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! cargo_pkg_license_file {
() => {
env!("CARGO_PKG_LICENSE_FILE")
};
}
#[doc(inline)]
pub use cargo_pkg_version;
#[doc(inline)]
pub use cargo_pkg_version_major;
#[doc(inline)]
pub use cargo_pkg_version_minor;
#[doc(inline)]
pub use cargo_pkg_version_patch;
#[doc(inline)]
pub use cargo_pkg_version_pre;
#[doc(inline)]
pub use cargo_pkg_authors;
#[doc(inline)]
pub use cargo_pkg_name;
#[doc(inline)]
pub use cargo_pkg_description;
#[doc(inline)]
pub use cargo_pkg_homepage;
#[doc(inline)]
pub use cargo_pkg_repository;
#[doc(inline)]
pub use cargo_pkg_license;
#[doc(inline)]
pub use cargo_pkg_license_file;
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub struct Version {
pub major: u16,
pub minor: u16,
pub patch: u16,
}
impl std::fmt::Display for Version {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}.{}.{}", self.major, self.minor, self.patch)
}
}
impl std::fmt::Debug for Version {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
<Self as std::fmt::Display>::fmt(self, f)
}
}
#[macro_export]
#[doc(hidden)]
macro_rules! crate_version {
() => {
$crate::meta::Version {
major: $crate::u16::from_str_radix10($crate::meta::cargo_pkg_version_major!()),
minor: $crate::u16::from_str_radix10($crate::meta::cargo_pkg_version_minor!()),
patch: $crate::u16::from_str_radix10($crate::meta::cargo_pkg_version_patch!()),
}
};
}
#[doc(inline)]
pub use crate_version;