//! # Version Info //! //! Contains server version requirements information use crate::consts; use crate::utils::res_utils::Res; use semver::Version; #[derive(serde::Serialize, serde::Deserialize)] pub struct VersionInfo { current: String, min_required: String, } impl VersionInfo { pub fn load_static() -> Self { Self { current: consts::CURRENT_VERSION.to_string(), min_required: consts::MIN_REQUIRED_VERSION.to_string(), } } /// Check if builtin version is compatible with a remote version or not pub fn is_compatible_with_static_version(&self) -> Res { let static_version = Self::load_static(); let local_current = Version::parse(&static_version.current)?; let min_required = Version::parse(&self.min_required)?; Ok(min_required <= local_current) } }