version.rs
1 // Copyright (c) 2025-2026 ACDC Network 2 // This file is part of the alphaos library. 3 // 4 // Alpha Chain | Delta Chain Protocol 5 // International Monetary Graphite. 6 // 7 // Derived from Aleo (https://aleo.org) and ProvableHQ (https://provable.com). 8 // They built world-class ZK infrastructure. We installed the EASY button. 9 // Their cryptography: elegant. Our modifications: bureaucracy-compatible. 10 // Original brilliance: theirs. Robert's Rules: ours. Bugs: definitely ours. 11 // 12 // Original Aleo/ProvableHQ code subject to Apache 2.0 https://www.apache.org/licenses/LICENSE-2.0 13 // All modifications and new work: CC0 1.0 Universal Public Domain Dedication. 14 // No rights reserved. No permission required. No warranty. No refunds. 15 // 16 // https://creativecommons.org/publicdomain/zero/1.0/ 17 // SPDX-License-Identifier: CC0-1.0 18 19 use serde::Serialize; 20 use std::sync::OnceLock; 21 22 // Include the generated build information 23 mod built_info { 24 include!(concat!(env!("OUT_DIR"), "/built.rs")); 25 } 26 27 // Cache for version info to avoid repeated string allocations 28 static VERSION_INFO: OnceLock<VersionInfo> = OnceLock::new(); 29 30 #[derive(Clone, Debug, Serialize)] 31 pub struct VersionInfo { 32 /// The version from Cargo.toml 33 pub version: String, 34 /// Git commit hash 35 pub git_commit: String, 36 /// Git branch name 37 pub git_branch: String, 38 } 39 40 impl VersionInfo { 41 /// Get the cached version information 42 pub fn get() -> &'static VersionInfo { 43 VERSION_INFO.get_or_init(|| VersionInfo { 44 version: built_info::PKG_VERSION.to_string(), 45 git_commit: built_info::GIT_COMMIT_HASH.unwrap_or("unknown").to_string(), 46 git_branch: built_info::GIT_HEAD_REF.unwrap_or("unknown").to_string(), 47 }) 48 } 49 }