plantuml_server_client_rs/metadata/
format_version.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Deserialize, Serialize, Clone, Copy, Debug, Default, Eq, PartialEq)]
4pub enum MetadataVersion {
5    #[default]
6    #[serde(rename = "v1")]
7    V1,
8
9    #[serde(rename = "v2")]
10    V2,
11}
12
13#[derive(Deserialize, Serialize, Clone, Copy, Debug, Default)]
14pub enum MetadataVersionV1 {
15    #[default]
16    #[serde(rename = "v1")]
17    V1,
18}
19
20#[derive(Deserialize, Serialize, Clone, Copy, Debug, Default)]
21pub enum MetadataVersionV2 {
22    #[default]
23    #[serde(rename = "v2")]
24    V2,
25}
26
27impl std::str::FromStr for MetadataVersion {
28    type Err = anyhow::Error;
29
30    fn from_str(s: &str) -> anyhow::Result<Self> {
31        match s.to_string().to_lowercase().as_str() {
32            "v1" => Ok(Self::V1),
33            "v2" => Ok(Self::V2),
34            _ => anyhow::bail!("unsupported metadata_version"),
35        }
36    }
37}
38
39impl MetadataVersion {
40    pub fn is_v1(&self) -> bool {
41        matches!(self, MetadataVersion::V1)
42    }
43}