<#@ template cleanws="true" #>
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[non_exhaustive]
#[allow(non_camel_case_types)]
pub enum Version {
<# for v in &**self { #>
<#= v.get_enum_name() #>,
<# } #>
Custom { platform: String, version: String, signature: Vec<u8> },
}
impl Version {
pub fn get_platform(&self) -> &str {
match *self {
<# for v in &**self { #>
Version::<#= v.get_enum_name() #> => "<#= v.platform #>",
<# } #>
Version::Custom { ref platform, .. } => platform,
}
}
pub fn get_version_string(&self) -> &str {
match *self {
<# for v in &**self { #>
Version::<#= v.get_enum_name() #> => "<#= v.version #>",
<# } #>
Version::Custom { ref version, .. } => version,
}
}
pub fn get_signature(&self) -> &[u8] {
match *self {
<# for v in &**self { #>
Version::<#= v.get_enum_name() #> => &[<#= v.get_sign_array() #>],
<# } #>
Version::Custom { ref signature, .. } => signature,
}
}
}