use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Eq, Deserialize, Serialize)]
pub struct ServerVersion {
pub major: u32,
#[serde(default)]
pub minor: Option<u32>,
#[serde(default)]
pub micro: Option<u32>,
pub string: String,
#[serde(default)]
pub edition: Option<String>,
#[serde(default, alias = "extendedSupport", alias = "extended_support")]
pub extended_support: Option<bool>,
}
impl ServerVersion {
pub const fn major(&self) -> u32 {
self.major
}
pub const fn minor(&self) -> Option<u32> {
self.minor
}
pub const fn micro(&self) -> Option<u32> {
self.micro
}
pub fn string(&self) -> &str {
&self.string
}
pub fn edition(&self) -> Option<&str> {
self.edition.as_deref()
}
pub const fn extended_support(&self) -> Option<bool> {
self.extended_support
}
}