35 lines
No EOL
1.2 KiB
Rust
35 lines
No EOL
1.2 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Deserialize, Serialize, Clone)]
|
|
pub struct Version {
|
|
pub build_timestamp: String,
|
|
pub git_branch: String,
|
|
pub git_describe: String,
|
|
pub git_commit_timestamp: String,
|
|
pub debug: bool,
|
|
pub version: String,
|
|
pub version_major: i32,
|
|
pub version_minor: i32,
|
|
pub version_patch: i32,
|
|
pub version_pre: String
|
|
}
|
|
|
|
impl Version {
|
|
pub fn get() -> Version {
|
|
Version {
|
|
build_timestamp: env!("VERGEN_BUILD_TIMESTAMP").to_string(),
|
|
git_branch: env!("VERGEN_GIT_BRANCH").to_string(),
|
|
git_describe: env!("VERGEN_GIT_DESCRIBE").to_string(),
|
|
git_commit_timestamp: env!("VERGEN_GIT_COMMIT_TIMESTAMP").to_string(),
|
|
debug: env!("VERGEN_CARGO_DEBUG").parse().unwrap(),
|
|
version: env!("CARGO_PKG_VERSION").to_string(),
|
|
version_major: env!("CARGO_PKG_VERSION_MAJOR").parse().unwrap(),
|
|
version_minor: env!("CARGO_PKG_VERSION_MINOR").parse().unwrap(),
|
|
version_patch: env!("CARGO_PKG_VERSION_PATCH").parse().unwrap(),
|
|
version_pre: env!("CARGO_PKG_VERSION_PRE").parse().unwrap()
|
|
}
|
|
}
|
|
pub fn to_string(self) -> String {
|
|
serde_json::to_string(&self).expect("Failed to parse into string")
|
|
}
|
|
} |