use super::error::Error;
use serde::{Deserialize, Serialize};
use std::fmt::{self, Display};
pub const SUPPORTED_VERSION: &str = "2.0";
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct Version(String);
impl Version {
pub fn is_supported(&self) -> bool {
self.0.eq(SUPPORTED_VERSION)
}
pub fn ensure_supported(&self) -> Result<(), Error> {
if self.is_supported() {
Ok(())
} else {
Err(Error::unsupported_version(self))
}
}
}
impl Display for Version {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.0)
}
}