e173 0.1.0-alpha.7

A library implementing various aspects of the ESTA BSR E1.73 standard
Documentation
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>,
    // TODO validation: At least one item (? confirm), valid media types
    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,
    // TODO validation: valid media type
    #[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>,
    // TODO validation: URI
    #[serde(skip_serializing_if = "Option::is_none")]
    pub provenance: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub default: Option<String>,
}

}