pub const PRODUCT_NAME: &str = "hyphae";
pub const API_VERSION: &str = "v1";
pub const DISK_FORMAT_VERSION: u16 = 1;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct VersionInfo {
pub product: &'static str,
pub engine: &'static str,
pub api: &'static str,
pub disk_format: u16,
}
pub const fn current_version() -> VersionInfo {
VersionInfo {
product: PRODUCT_NAME,
engine: env!("CARGO_PKG_VERSION"),
api: API_VERSION,
disk_format: DISK_FORMAT_VERSION,
}
}
#[cfg(test)]
mod tests {
use super::{API_VERSION, DISK_FORMAT_VERSION, PRODUCT_NAME, current_version};
#[test]
fn current_version_matches_public_constants() {
let version = current_version();
assert_eq!(version.product, PRODUCT_NAME);
assert_eq!(version.api, API_VERSION);
assert_eq!(version.disk_format, DISK_FORMAT_VERSION);
assert!(!version.engine.is_empty());
}
}