use serde::{Deserialize, Serialize};
use url::Url;
#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type", rename_all = "kebab-case")]
pub enum Identifier {
Doi {
value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
description: Option<String>,
},
Url {
value: Url,
#[serde(default, skip_serializing_if = "Option::is_none")]
description: Option<String>,
},
Swh {
value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
description: Option<String>,
},
Other {
value: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
description: Option<String>,
},
}