#[cfg(any(
feature = "build",
feature = "cargo",
feature = "git",
feature = "rustc",
feature = "si"
))]
pub(crate) use self::keys::VergenKey;
#[cfg(any(
feature = "build",
feature = "cargo",
feature = "git",
feature = "rustc",
feature = "si"
))]
mod keys {
#[cfg(feature = "build")]
use crate::constants::{BUILD_DATE_NAME, BUILD_TIMESTAMP_NAME};
#[cfg(feature = "cargo")]
use crate::constants::{
CARGO_DEBUG, CARGO_DEPENDENCIES, CARGO_FEATURES, CARGO_OPT_LEVEL, CARGO_TARGET_TRIPLE,
};
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
use crate::constants::{
GIT_BRANCH_NAME, GIT_COMMIT_AUTHOR_EMAIL, GIT_COMMIT_AUTHOR_NAME, GIT_COMMIT_COUNT,
GIT_COMMIT_DATE_NAME, GIT_COMMIT_MESSAGE, GIT_COMMIT_TIMESTAMP_NAME, GIT_DESCRIBE_NAME,
GIT_DIRTY_NAME, GIT_SHA_NAME,
};
#[cfg(feature = "rustc")]
use crate::constants::{
RUSTC_CHANNEL_NAME, RUSTC_COMMIT_DATE, RUSTC_COMMIT_HASH, RUSTC_HOST_TRIPLE_NAME,
RUSTC_LLVM_VERSION, RUSTC_SEMVER_NAME,
};
#[cfg(feature = "si")]
use crate::constants::{
SYSINFO_CPU_BRAND, SYSINFO_CPU_CORE_COUNT, SYSINFO_CPU_FREQUENCY, SYSINFO_CPU_NAME,
SYSINFO_CPU_VENDOR, SYSINFO_MEMORY, SYSINFO_NAME, SYSINFO_OS_VERSION, SYSINFO_USER,
};
#[derive(Clone, Copy, Debug, Hash, Eq, Ord, PartialEq, PartialOrd)]
pub(crate) enum VergenKey {
#[cfg(feature = "build")]
BuildDate,
#[cfg(feature = "build")]
BuildTimestamp,
#[cfg(feature = "cargo")]
CargoDebug,
#[cfg(feature = "cargo")]
CargoFeatures,
#[cfg(feature = "cargo")]
CargoOptLevel,
#[cfg(feature = "cargo")]
CargoTargetTriple,
#[cfg(feature = "cargo")]
CargoDependencies,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitBranch,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitCommitAuthorEmail,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitCommitAuthorName,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitCommitCount,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitCommitDate,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitCommitMessage,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitCommitTimestamp,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitDescribe,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitSha,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
GitDirty,
#[cfg(feature = "rustc")]
RustcChannel,
#[cfg(feature = "rustc")]
RustcCommitDate,
#[cfg(feature = "rustc")]
RustcCommitHash,
#[cfg(feature = "rustc")]
RustcHostTriple,
#[cfg(feature = "rustc")]
RustcLlvmVersion,
#[cfg(feature = "rustc")]
RustcSemver,
#[cfg(feature = "si")]
SysinfoName,
#[cfg(feature = "si")]
SysinfoOsVersion,
#[cfg(feature = "si")]
SysinfoUser,
#[cfg(feature = "si")]
SysinfoMemory,
#[cfg(feature = "si")]
SysinfoCpuVendor,
#[cfg(feature = "si")]
SysinfoCpuCoreCount,
#[cfg(feature = "si")]
SysinfoCpuName,
#[cfg(feature = "si")]
SysinfoCpuBrand,
#[cfg(feature = "si")]
SysinfoCpuFrequency,
}
impl VergenKey {
pub(crate) fn name(self) -> &'static str {
match self {
#[cfg(feature = "build")]
VergenKey::BuildDate => BUILD_DATE_NAME,
#[cfg(feature = "build")]
VergenKey::BuildTimestamp => BUILD_TIMESTAMP_NAME,
#[cfg(feature = "cargo")]
VergenKey::CargoDebug => CARGO_DEBUG,
#[cfg(feature = "cargo")]
VergenKey::CargoFeatures => CARGO_FEATURES,
#[cfg(feature = "cargo")]
VergenKey::CargoOptLevel => CARGO_OPT_LEVEL,
#[cfg(feature = "cargo")]
VergenKey::CargoTargetTriple => CARGO_TARGET_TRIPLE,
#[cfg(feature = "cargo")]
VergenKey::CargoDependencies => CARGO_DEPENDENCIES,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitBranch => GIT_BRANCH_NAME,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitCommitAuthorEmail => GIT_COMMIT_AUTHOR_EMAIL,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitCommitAuthorName => GIT_COMMIT_AUTHOR_NAME,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitCommitCount => GIT_COMMIT_COUNT,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitCommitDate => GIT_COMMIT_DATE_NAME,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitCommitMessage => GIT_COMMIT_MESSAGE,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitCommitTimestamp => GIT_COMMIT_TIMESTAMP_NAME,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitDescribe => GIT_DESCRIBE_NAME,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitSha => GIT_SHA_NAME,
#[cfg(all(
feature = "git",
any(feature = "gitcl", feature = "git2", feature = "gix")
))]
VergenKey::GitDirty => GIT_DIRTY_NAME,
#[cfg(feature = "rustc")]
VergenKey::RustcChannel => RUSTC_CHANNEL_NAME,
#[cfg(feature = "rustc")]
VergenKey::RustcCommitDate => RUSTC_COMMIT_DATE,
#[cfg(feature = "rustc")]
VergenKey::RustcCommitHash => RUSTC_COMMIT_HASH,
#[cfg(feature = "rustc")]
VergenKey::RustcHostTriple => RUSTC_HOST_TRIPLE_NAME,
#[cfg(feature = "rustc")]
VergenKey::RustcLlvmVersion => RUSTC_LLVM_VERSION,
#[cfg(feature = "rustc")]
VergenKey::RustcSemver => RUSTC_SEMVER_NAME,
#[cfg(feature = "si")]
VergenKey::SysinfoName => SYSINFO_NAME,
#[cfg(feature = "si")]
VergenKey::SysinfoOsVersion => SYSINFO_OS_VERSION,
#[cfg(feature = "si")]
VergenKey::SysinfoUser => SYSINFO_USER,
#[cfg(feature = "si")]
VergenKey::SysinfoMemory => SYSINFO_MEMORY,
#[cfg(feature = "si")]
VergenKey::SysinfoCpuVendor => SYSINFO_CPU_VENDOR,
#[cfg(feature = "si")]
VergenKey::SysinfoCpuCoreCount => SYSINFO_CPU_CORE_COUNT,
#[cfg(feature = "si")]
VergenKey::SysinfoCpuName => SYSINFO_CPU_NAME,
#[cfg(feature = "si")]
VergenKey::SysinfoCpuBrand => SYSINFO_CPU_BRAND,
#[cfg(feature = "si")]
VergenKey::SysinfoCpuFrequency => SYSINFO_CPU_FREQUENCY,
}
}
}
}
#[cfg(not(any(
feature = "build",
feature = "cargo",
feature = "git",
feature = "rustc",
feature = "si"
)))]
mod keys {
#[derive(Clone, Copy, Debug, Hash, Eq, Ord, PartialEq, PartialOrd)]
pub(crate) enum VergenKey {}
}