plantuml_server_client_rs/metadata/
format_version.rs1use 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}