e173 0.1.0-alpha.7

A library implementing various aspects of the ESTA BSR E1.73 standard
Documentation
use std::collections::HashMap;

use crate::e173_types;

use super::{
    command::CommandClass, localization::DefinitionLocalization, parameter::ParameterClass,
    resource::ResourceClass, serializer::SerializerClass, structure::StructureClass,
};

e173_types! {

#[serde(rename_all = "camelCase")]
pub struct Library {
    #[serde(rename = "@description")]
    pub description: String,
    pub publish_date: String,
    pub author: String,
    #[serde(default, skip_serializing_if = "HashMap::is_empty")]
    pub parameter_classes: HashMap<String, ParameterClass>,
    #[serde(default, skip_serializing_if = "HashMap::is_empty")]
    pub structure_classes: HashMap<String, StructureClass>,
    #[serde(default, skip_serializing_if = "HashMap::is_empty")]
    pub serializer_classes: HashMap<String, SerializerClass>,
    #[serde(default, skip_serializing_if = "HashMap::is_empty")]
    pub resource_classes: HashMap<String, ResourceClass>,
    #[serde(default, skip_serializing_if = "HashMap::is_empty")]
    pub command_classes: HashMap<String, CommandClass>,
    #[serde(default, skip_serializing_if = "HashMap::is_empty")]
    pub localizations: HashMap<String, DefinitionLocalization>,
}

}