use std::collections::HashSet;
use uuid::Uuid;
use crate::e173_types;
use super::{Access, Lifetime};
e173_types! {
#[serde(rename_all = "camelCase")]
pub struct ResourceClass {
#[serde(rename = "@name")]
pub name: String,
#[serde(rename = "@description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub media_type: Vec<String>,
}
#[serde(rename_all = "camelCase")]
pub struct Resource {
#[serde(skip_serializing_if = "Option::is_none")]
pub library: Option<String>,
pub class: String,
pub access: HashSet<Access>,
pub lifetime: Lifetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[cfg_attr(target_arch = "wasm32", tsify(type = "string"))]
pub asset_id: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub import_path: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provenance: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default: Option<String>,
}
}