#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
use super::*;
use serde::{Deserialize, Serialize};
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ProductDefinitions {
#[serde(rename = "ProductMetaData", skip_serializing_if = "Option::is_none")]
pub product_meta_data: Option<ProductMetaData>,
#[serde(rename = "Variants", skip_serializing_if = "Option::is_none")]
pub variants: Option<Variants>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LuminaireMaintenanceFactor {
#[serde(rename = "@years", default, skip_serializing_if = "Option::is_none")]
pub years: Option<i32>,
#[serde(
rename = "@roomCondition",
default,
skip_serializing_if = "Option::is_none"
)]
pub room_condition: Option<String>,
#[serde(rename = "$text", default)]
pub value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CieLuminaireMaintenanceFactors {
#[serde(rename = "LuminaireMaintenanceFactor", default)]
pub luminaire_maintenance_factor: Vec<LuminaireMaintenanceFactor>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LuminaireDirtDepreciation {
#[serde(rename = "@years", default)]
pub years: i32,
#[serde(rename = "@roomCondition", default)]
pub room_condition: String,
#[serde(rename = "$text", default)]
pub value: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct IesLuminaireLightLossFactors {
#[serde(rename = "LuminaireDirtDepreciation", default)]
pub luminaire_dirt_depreciation: Vec<LuminaireDirtDepreciation>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct JiegMaintenanceFactors {
#[serde(rename = "LuminaireMaintenanceFactor", default)]
pub luminaire_maintenance_factor: Vec<LuminaireMaintenanceFactor>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LuminaireMaintenance {
#[serde(
rename = "Cie97LuminaireType",
default,
skip_serializing_if = "Option::is_none"
)]
pub cie97_luminaire_type: Option<String>,
#[serde(
rename = "CieLuminaireMaintenanceFactors",
default,
skip_serializing_if = "Option::is_none"
)]
pub cie_luminaire_maintenance_factors: Option<CieLuminaireMaintenanceFactors>,
#[serde(
rename = "IesLuminaireLightLossFactors",
default,
skip_serializing_if = "Option::is_none"
)]
pub ies_luminaire_light_loss_factors: Option<IesLuminaireLightLossFactors>,
#[serde(
rename = "JiegMaintenanceFactors",
default,
skip_serializing_if = "Option::is_none"
)]
pub jieg_maintenance_factors: Option<JiegMaintenanceFactors>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ProductMetaData {
#[serde(
rename = "UniqueProductId",
default,
skip_serializing_if = "String::is_empty"
)]
pub unique_product_id: String,
#[serde(rename = "ProductNumber", skip_serializing_if = "Option::is_none")]
pub product_number: Option<LocaleFoo>,
#[serde(rename = "Name", skip_serializing_if = "Option::is_none")]
pub name: Option<LocaleFoo>,
#[serde(rename = "Description", skip_serializing_if = "Option::is_none")]
pub description: Option<LocaleFoo>,
#[serde(rename = "TenderText", skip_serializing_if = "Option::is_none")]
pub tender_text: Option<LocaleFoo>,
#[serde(rename = "ProductSeries", skip_serializing_if = "Option::is_none")]
pub product_series: Option<ProductSeries>,
#[serde(rename = "Pictures", skip_serializing_if = "Option::is_none")]
pub pictures: Option<Images>,
#[serde(
rename = "LuminaireMaintenance",
skip_serializing_if = "Option::is_none"
)]
pub luminaire_maintenance: Option<LuminaireMaintenance>,
#[serde(
rename = "DescriptiveAttributes",
skip_serializing_if = "Option::is_none"
)]
pub descriptive_attributes: Option<DescriptiveAttributes>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RectangularCutout {
#[serde(rename = "Width", default)]
pub width: i32,
#[serde(rename = "Length", default)]
pub length: i32,
#[serde(rename = "Depth", default)]
pub depth: i32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CircularCutout {
#[serde(rename = "Diameter", default)]
pub diameter: i32,
#[serde(rename = "Depth", default)]
pub depth: i32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Recessed {
#[serde(rename = "@recessedDepth", default)]
pub recessed_depth: i32,
#[serde(
rename = "RectangularCutout",
default,
skip_serializing_if = "Option::is_none"
)]
pub rectangular_cutout: Option<RectangularCutout>,
#[serde(
rename = "CircularCutout",
default,
skip_serializing_if = "Option::is_none"
)]
pub circular_cutout: Option<CircularCutout>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SurfaceMounted {}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Pendant {
#[serde(rename = "pendantLength", default)]
pub pendant_length: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Ceiling {
#[serde(rename = "Recessed", skip_serializing_if = "Option::is_none")]
pub recessed: Option<Recessed>,
#[serde(rename = "SurfaceMounted", skip_serializing_if = "Option::is_none")]
pub surface_mounted: Option<SurfaceMounted>,
#[serde(rename = "Pendant", skip_serializing_if = "Option::is_none")]
pub pendant: Option<Pendant>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Wall {
#[serde(rename = "@mountingHeight", default)]
pub mounting_height: i32,
#[serde(rename = "Recessed", default, skip_serializing_if = "Option::is_none")]
pub recessed: Option<Recessed>,
#[serde(
rename = "SurfaceMounted",
default,
skip_serializing_if = "Option::is_none"
)]
pub surface_mounted: Option<SurfaceMounted>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct FreeStanding {}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct WorkingPlane {
#[serde(rename = "FreeStanding", skip_serializing_if = "Option::is_none")]
pub free_standing: Option<FreeStanding>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct PoleTop {
#[serde(rename = "@poleHeight", skip_serializing_if = "Option::is_none")]
pub pole_height: Option<i32>,
#[serde(rename = "poleHeight", skip_serializing_if = "Option::is_none")]
pub pole_height_element: Option<i32>,
}
impl PoleTop {
pub fn get_pole_height(&self) -> Option<i32> {
self.pole_height.or(self.pole_height_element)
}
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct PoleIntegrated {
#[serde(rename = "@poleHeight", skip_serializing_if = "Option::is_none")]
pub pole_height: Option<i32>,
#[serde(rename = "poleHeight", skip_serializing_if = "Option::is_none")]
pub pole_height_element: Option<i32>,
}
impl PoleIntegrated {
pub fn get_pole_height(&self) -> Option<i32> {
self.pole_height.or(self.pole_height_element)
}
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Ground {
#[serde(rename = "PoleTop", skip_serializing_if = "Option::is_none")]
pub pole_top: Option<PoleTop>,
#[serde(rename = "PoleIntegrated", skip_serializing_if = "Option::is_none")]
pub pole_integrated: Option<PoleIntegrated>,
#[serde(rename = "FreeStanding", skip_serializing_if = "Option::is_none")]
pub free_standing: Option<FreeStanding>,
#[serde(rename = "SurfaceMounted", skip_serializing_if = "Option::is_none")]
pub surface_mounted: Option<SurfaceMounted>,
#[serde(rename = "Recessed", skip_serializing_if = "Option::is_none")]
pub recessed: Option<Recessed>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Mountings {
#[serde(rename = "Ceiling", skip_serializing_if = "Option::is_none")]
pub ceiling: Option<Ceiling>,
#[serde(rename = "Wall", skip_serializing_if = "Option::is_none")]
pub wall: Option<Wall>,
#[serde(rename = "WorkingPlane", skip_serializing_if = "Option::is_none")]
pub working_plane: Option<WorkingPlane>,
#[serde(rename = "Ground", skip_serializing_if = "Option::is_none")]
pub ground: Option<Ground>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EmitterReferenceBare {
#[serde(rename = "@emitterId")]
pub emitter_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EmitterReference {
#[serde(rename = "@emitterId")]
pub emitter_id: String,
#[serde(
rename = "@targetModelType",
default,
skip_serializing_if = "Option::is_none"
)]
pub target_model_type: Option<String>,
#[serde(rename = "EmitterObjectExternalName", default)]
pub emitter_object_external_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SimpleGeometryReference {
#[serde(rename = "@geometryId")]
pub geometry_id: String,
#[serde(rename = "@emitterId")]
pub emitter_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ModelGeometryReference {
#[serde(rename = "@geometryId")]
pub geometry_id: String,
#[serde(rename = "EmitterReference", default)]
pub emitter_reference: Vec<EmitterReference>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct GeometryReferences {
#[serde(
rename = "SimpleGeometryReference",
skip_serializing_if = "Option::is_none"
)]
pub simple_geometry_reference: Option<SimpleGeometryReference>,
#[serde(
rename = "ModelGeometryReference",
skip_serializing_if = "Option::is_none"
)]
pub model_geometry_reference: Option<ModelGeometryReference>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Geometry {
#[serde(
rename = "EmitterReference",
default,
skip_serializing_if = "Vec::is_empty"
)]
pub emitter_reference: Vec<EmitterReferenceBare>,
#[serde(
rename = "SimpleGeometryReference",
skip_serializing_if = "Option::is_none"
)]
pub simple_geometry_reference: Option<SimpleGeometryReference>,
#[serde(
rename = "ModelGeometryReference",
skip_serializing_if = "Option::is_none"
)]
pub model_geometry_reference: Option<ModelGeometryReference>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Symbol {
#[serde(rename = "@fileId")]
pub file_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Variant {
#[serde(rename = "@id")]
pub id: String,
#[serde(rename = "sortOrder", skip_serializing_if = "Option::is_none")]
pub sort_order: Option<i32>,
#[serde(rename = "ProductNumber", skip_serializing_if = "Option::is_none")]
pub product_number: Option<LocaleFoo>,
#[serde(rename = "Name", skip_serializing_if = "Option::is_none")]
pub name: Option<LocaleFoo>,
#[serde(rename = "Description", skip_serializing_if = "Option::is_none")]
pub description: Option<LocaleFoo>,
#[serde(rename = "TenderText", skip_serializing_if = "Option::is_none")]
pub tender_text: Option<LocaleFoo>,
#[serde(rename = "GTIN", skip_serializing_if = "Option::is_none")]
pub gtin: Option<String>,
#[serde(rename = "Mountings", skip_serializing_if = "Option::is_none")]
pub mountings: Option<Mountings>,
#[serde(rename = "Geometry", skip_serializing_if = "Option::is_none")]
pub geometry: Option<Geometry>,
#[serde(rename = "ProductSeries", skip_serializing_if = "Option::is_none")]
pub product_series: Option<ProductSeries>,
#[serde(rename = "Pictures", skip_serializing_if = "Option::is_none")]
pub pictures: Option<Images>,
#[serde(rename = "Symbol", skip_serializing_if = "Option::is_none")]
pub symbol: Option<Symbol>,
#[serde(
rename = "DescriptiveAttributes",
skip_serializing_if = "Option::is_none"
)]
pub descriptive_attributes: Option<DescriptiveAttributes>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Variants {
#[serde(rename = "Variant", default)]
pub variant: Vec<Variant>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ProductSize {
#[serde(rename = "Length")]
pub length: i32,
#[serde(rename = "Width")]
pub width: i32,
#[serde(rename = "Height")]
pub height: i32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Adjustabilities {
#[serde(rename = "Adjustability", default)]
pub adjustability: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ProtectiveAreas {
#[serde(rename = "Area", default)]
pub area: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Mechanical {
#[serde(rename = "ProductSize", skip_serializing_if = "Option::is_none")]
pub product_size: Option<ProductSize>,
#[serde(rename = "ProductForm", skip_serializing_if = "Option::is_none")]
pub product_form: Option<String>,
#[serde(rename = "SealingMaterial", skip_serializing_if = "Option::is_none")]
pub sealing_material: Option<LocaleFoo>,
#[serde(rename = "Adjustabilities", skip_serializing_if = "Option::is_none")]
pub adjustabilities: Option<Adjustabilities>,
#[serde(rename = "IKRating", skip_serializing_if = "Option::is_none")]
pub ik_rating: Option<String>,
#[serde(rename = "ProtectiveAreas", skip_serializing_if = "Option::is_none")]
pub protective_areas: Option<ProtectiveAreas>,
#[serde(rename = "Weight", skip_serializing_if = "Option::is_none")]
pub weight: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ClampingRange {
#[serde(rename = "Lower")]
pub lower: f64,
#[serde(rename = "Upper")]
pub upper: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Electrical {
#[serde(rename = "ClampingRange", skip_serializing_if = "Option::is_none")]
pub clamping_range: Option<ClampingRange>,
#[serde(rename = "SwitchingCapacity", skip_serializing_if = "Option::is_none")]
pub switching_capacity: Option<String>,
#[serde(
rename = "ElectricalSafetyClass",
skip_serializing_if = "Option::is_none"
)]
pub electrical_safety_class: Option<String>,
#[serde(
rename = "IngressProtectionIPCode",
skip_serializing_if = "Option::is_none"
)]
pub ingress_protection_ip_code: Option<String>,
#[serde(rename = "PowerFactor", skip_serializing_if = "Option::is_none")]
pub power_factor: Option<f64>,
#[serde(
rename = "ConstantLightOutput",
skip_serializing_if = "Option::is_none"
)]
pub constant_light_output: Option<bool>,
#[serde(rename = "LightDistribution", skip_serializing_if = "Option::is_none")]
pub light_distribution: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Flux {
#[serde(rename = "@hours")]
pub hours: i32,
#[serde(rename = "$text")]
pub value: i32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DurationTimeAndFlux {
#[serde(rename = "Flux", default)]
pub flux: Vec<Flux>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Emergency {
#[serde(
rename = "DurationTimeAndFlux",
skip_serializing_if = "Option::is_none"
)]
pub duration_time_and_flux: Option<DurationTimeAndFlux>,
#[serde(
rename = "DedicatedEmergencyLightingType",
skip_serializing_if = "Option::is_none"
)]
pub dedicated_emergency_lighting_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ListPrice {
#[serde(rename = "@currency", skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ListPrices {
#[serde(rename = "ListPrice", default)]
pub list_price: Vec<ListPrice>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct HousingColor {
#[serde(rename = "@ral", skip_serializing_if = "Option::is_none")]
pub ral: Option<i32>,
#[serde(flatten)]
pub locale: Locale,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct HousingColors {
#[serde(rename = "HousingColor", default)]
pub housing_color: Vec<HousingColor>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Markets {
#[serde(rename = "Region", default)]
pub region: Vec<Locale>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ApprovalMarks {
#[serde(rename = "ApprovalMark", default)]
pub approval_mark: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DesignAwards {
#[serde(rename = "DesignAward", default)]
pub design_award: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Labels {
#[serde(rename = "Label", default)]
pub label: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Applications {
#[serde(rename = "Application", default)]
pub application: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Marketing {
#[serde(rename = "ListPrices", skip_serializing_if = "Option::is_none")]
pub list_prices: Option<ListPrices>,
#[serde(rename = "HousingColors", skip_serializing_if = "Option::is_none")]
pub housing_colors: Option<HousingColors>,
#[serde(rename = "Markets", skip_serializing_if = "Option::is_none")]
pub markets: Option<Markets>,
#[serde(rename = "Hyperlinks", skip_serializing_if = "Option::is_none")]
pub hyperlinks: Option<Hyperlinks>,
#[serde(rename = "Designer", skip_serializing_if = "Option::is_none")]
pub designer: Option<String>,
#[serde(rename = "ApprovalMarks", skip_serializing_if = "Option::is_none")]
pub approval_marks: Option<ApprovalMarks>,
#[serde(rename = "DesignAwards", skip_serializing_if = "Option::is_none")]
pub design_awards: Option<DesignAwards>,
#[serde(rename = "Labels", skip_serializing_if = "Option::is_none")]
pub labels: Option<Labels>,
#[serde(rename = "Applications", skip_serializing_if = "Option::is_none")]
pub applications: Option<Applications>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct UsefulLifeTimes {
#[serde(rename = "UsefulLife", default)]
pub useful_life: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct MedianUsefulLifeTimes {
#[serde(rename = "MedianUsefulLife", default)]
pub median_useful_life: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Directives {
#[serde(rename = "Directive", default)]
pub directive: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Classes {
#[serde(rename = "Class", default)]
pub class: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Divisions {
#[serde(rename = "Division", default)]
pub division: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct GasGroups {
#[serde(rename = "Group", default)]
pub group: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DustGroups {
#[serde(rename = "Group", default)]
pub group: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct GasZones {
#[serde(rename = "Zone", default)]
pub zone: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DustZones {
#[serde(rename = "Zone", default)]
pub zone: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DivisionGroups {
#[serde(rename = "Gas", skip_serializing_if = "Option::is_none")]
pub gas: Option<GasGroups>,
#[serde(rename = "Dust", skip_serializing_if = "Option::is_none")]
pub dust: Option<DustGroups>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Zones {
#[serde(rename = "Gas", skip_serializing_if = "Option::is_none")]
pub gas: Option<GasZones>,
#[serde(rename = "Dust", skip_serializing_if = "Option::is_none")]
pub dust: Option<DustZones>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ZoneGroups {
#[serde(rename = "Gas", skip_serializing_if = "Option::is_none")]
pub gas: Option<GasGroups>,
#[serde(rename = "Dust", skip_serializing_if = "Option::is_none")]
pub dust: Option<DustGroups>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TemperatureClasses {
#[serde(rename = "TemperatureClass", default)]
pub temperature_class: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ExCodes {
#[serde(rename = "ExCode", default)]
pub ex_code: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EquipmentProtectionLevels {
#[serde(rename = "EquipmentProtectionLevel", default)]
pub equipment_protection_level: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EquipmentGroups {
#[serde(rename = "EquipmentGroup", default)]
pub equipment_group: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EquipmentCategories {
#[serde(rename = "EquipmentCategory", default)]
pub equipment_category: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Atmospheres {
#[serde(rename = "Atmosphere", default)]
pub atmosphere: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Groups {
#[serde(rename = "Group", default)]
pub group: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ATEX {
#[serde(rename = "Directives", skip_serializing_if = "Option::is_none")]
pub directives: Option<Directives>,
#[serde(rename = "Classes", skip_serializing_if = "Option::is_none")]
pub classes: Option<Classes>,
#[serde(rename = "Divisions", skip_serializing_if = "Option::is_none")]
pub divisions: Option<Divisions>,
#[serde(rename = "DivisionGroups", skip_serializing_if = "Option::is_none")]
pub division_groups: Option<DivisionGroups>,
#[serde(rename = "Zones", skip_serializing_if = "Option::is_none")]
pub zones: Option<Zones>,
#[serde(rename = "ZoneGroups", skip_serializing_if = "Option::is_none")]
pub zone_groups: Option<ZoneGroups>,
#[serde(
rename = "MaximumSurfaceTemperature",
skip_serializing_if = "Option::is_none"
)]
pub maximum_surface_temperature: Option<String>,
#[serde(rename = "Groups", skip_serializing_if = "Option::is_none")]
pub groups: Option<Groups>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct AbsorptionRate {
#[serde(rename = "@hertz")]
pub hertz: i32,
#[serde(rename = "$text")]
pub value: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct AcousticAbsorptionRates {
#[serde(rename = "AbsorptionRate", default)]
pub absorption_rate: Vec<AbsorptionRate>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TemperatureRange {
#[serde(rename = "Lower")]
pub lower: i32,
#[serde(rename = "Upper")]
pub upper: i32,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct OperationsAndMaintenance {
#[serde(rename = "UsefulLifeTimes", skip_serializing_if = "Option::is_none")]
pub useful_life_times: Option<UsefulLifeTimes>,
#[serde(
rename = "MedianUsefulLifeTimes",
skip_serializing_if = "Option::is_none"
)]
pub median_useful_life_times: Option<MedianUsefulLifeTimes>,
#[serde(
rename = "OperatingTemperature",
skip_serializing_if = "Option::is_none"
)]
pub operating_temperature: Option<TemperatureRange>,
#[serde(rename = "AmbientTemperature", skip_serializing_if = "Option::is_none")]
pub ambient_temperature: Option<TemperatureRange>,
#[serde(
rename = "RatedAmbientTemperature",
skip_serializing_if = "Option::is_none"
)]
pub rated_ambient_temperature: Option<i32>,
#[serde(rename = "ATEX", skip_serializing_if = "Option::is_none")]
pub atex: Option<ATEX>,
#[serde(
rename = "AcousticAbsorptionRates",
skip_serializing_if = "Option::is_none"
)]
pub acoustic_absorption_rates: Option<AcousticAbsorptionRates>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct FileReference {
#[serde(rename = "@fileId")]
pub file_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Property {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "Name", default)]
pub name: LocaleFoo,
#[serde(rename = "PropertySource", default)]
pub property_source: String,
#[serde(rename = "Value", default)]
pub value: String,
#[serde(
rename = "FileReference",
default,
skip_serializing_if = "Option::is_none"
)]
pub file_reference: Option<FileReference>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CustomProperties {
#[serde(rename = "Property", default)]
pub property: Vec<Property>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DescriptiveAttributes {
#[serde(rename = "Mechanical", skip_serializing_if = "Option::is_none")]
pub mechanical: Option<Mechanical>,
#[serde(rename = "Electrical", skip_serializing_if = "Option::is_none")]
pub electrical: Option<Electrical>,
#[serde(rename = "Emergency", skip_serializing_if = "Option::is_none")]
pub emergency: Option<Emergency>,
#[serde(rename = "Marketing", skip_serializing_if = "Option::is_none")]
pub marketing: Option<Marketing>,
#[serde(
rename = "OperationsAndMaintenance",
skip_serializing_if = "Option::is_none"
)]
pub operations_and_maintenance: Option<OperationsAndMaintenance>,
#[serde(rename = "CustomProperties", skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomProperties>,
}