1pub const PRODUCT_NAME: &str = "hyphae";
7
8pub const API_VERSION: &str = "v1";
10
11pub const DISK_FORMAT_VERSION: u16 = 1;
13
14#[derive(Clone, Copy, Debug, Eq, PartialEq)]
16pub struct VersionInfo {
17 pub product: &'static str,
19 pub engine: &'static str,
21 pub api: &'static str,
23 pub disk_format: u16,
25}
26
27pub const fn current_version() -> VersionInfo {
29 VersionInfo {
30 product: PRODUCT_NAME,
31 engine: env!("CARGO_PKG_VERSION"),
32 api: API_VERSION,
33 disk_format: DISK_FORMAT_VERSION,
34 }
35}
36
37#[cfg(test)]
38mod tests {
39 use super::{API_VERSION, DISK_FORMAT_VERSION, PRODUCT_NAME, current_version};
40
41 #[test]
42 fn current_version_matches_public_constants() {
43 let version = current_version();
44 assert_eq!(version.product, PRODUCT_NAME);
45 assert_eq!(version.api, API_VERSION);
46 assert_eq!(version.disk_format, DISK_FORMAT_VERSION);
47 assert!(!version.engine.is_empty());
48 }
49}