use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum Version {
#[serde(rename = "1.0")]
V1_0,
#[serde(rename = "1.1")]
V1_1,
#[serde(rename = "2.0")]
V2_0,
}
impl Version {
pub fn from_str(s: &str) -> Option<Version> {
match s {
"1.0" => Some(Version::V1_0),
"1.1" => Some(Version::V1_1),
"2.0" => Some(Version::V2_0),
_ => None,
}
}
pub fn as_str(&self) -> &'static str {
match self {
Version::V1_0 => "1.0",
Version::V1_1 => "1.1",
Version::V2_0 => "2.0",
}
}
}
impl std::fmt::Display for Version {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.as_str())
}
}