#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
use serde::{Deserialize, Serialize};
use super::LocaleFoo;
use super::lightsources::LightSourceReference;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct VoltageRange {
#[serde(rename = "Min", default)]
pub min: f64,
#[serde(rename = "Max", default)]
pub max: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum Frequency {
#[default]
#[serde(rename = "50")]
Hz50,
#[serde(rename = "60")]
Hz60,
#[serde(rename = "50/60")]
Hz50_60,
#[serde(rename = "400")]
Hz400,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum CurrentType {
#[default]
AC,
DC,
UC,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Voltage {
#[serde(rename = "VoltageRange", default, skip_serializing_if = "Option::is_none")]
pub voltage_range: Option<VoltageRange>,
#[serde(rename = "FixedVoltage", default, skip_serializing_if = "Option::is_none")]
pub fixed_voltage: Option<f64>,
#[serde(rename = "Type", default)]
pub type_attr: CurrentType,
#[serde(rename = "Frequency", default)]
pub frequency: Frequency,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct PowerRange {
#[serde(rename = "Lower", default)]
pub lower: f64,
#[serde(rename = "Upper", default)]
pub upper: f64,
#[serde(rename = "DefaultLightSourcePower", default)]
pub default_light_source_power: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EnergyLabel {
#[serde(rename = "@region")]
pub region: String,
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EnergyLabels {
#[serde(rename = "EnergyLabel", default)]
pub energy_label: Vec<EnergyLabel>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Interfaces {
#[serde(rename = "Interface", default)]
pub interface: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ControlGear {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "Name", default)]
pub name: LocaleFoo,
#[serde(rename = "Description", default, skip_serializing_if = "Option::is_none")]
pub description: Option<LocaleFoo>,
#[serde(rename = "NominalVoltage", default, skip_serializing_if = "Option::is_none")]
pub nominal_voltage: Option<Voltage>,
#[serde(rename = "StandbyPower", default, skip_serializing_if = "Option::is_none")]
pub standby_power: Option<f64>,
#[serde(rename = "ConstantLightOutputStartPower", default, skip_serializing_if = "Option::is_none")]
pub constant_light_output_start_power: Option<f64>,
#[serde(rename = "ConstantLightOutputEndPower", default, skip_serializing_if = "Option::is_none")]
pub constant_light_output_end_power: Option<f64>,
#[serde(rename = "PowerConsumptionControls", default, skip_serializing_if = "Option::is_none")]
pub power_consumption_controls: Option<f64>,
#[serde(rename = "Dimmable", default, skip_serializing_if = "Option::is_none")]
pub dimmable: Option<bool>,
#[serde(rename = "ColorControllable", default, skip_serializing_if = "Option::is_none")]
pub color_controllable: Option<bool>,
#[serde(rename = "Interfaces", default, skip_serializing_if = "Option::is_none")]
pub interfaces: Option<Interfaces>,
#[serde(rename = "EnergyLabels", default, skip_serializing_if = "Option::is_none")]
pub energy_labels: Option<EnergyLabels>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ControlGears {
#[serde(rename = "ControlGear", default)]
pub control_gear: Vec<ControlGear>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ControlGearReference {
#[serde(rename = "@controlGearId")]
pub control_gear_id: String,
#[serde(rename = "@controlGearCount", skip_serializing_if = "Option::is_none")]
pub control_gear_count: Option<i32>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Equipment {
#[serde(rename = "@id", default)]
pub id: String,
#[serde(rename = "LightSourceReference", default, skip_serializing_if = "Option::is_none")]
pub light_source_reference: Option<LightSourceReference>,
#[serde(rename = "ControlGearReference", default, skip_serializing_if = "Option::is_none")]
pub control_gear_reference: Option<ControlGearReference>,
#[serde(rename = "RatedInputPower", default)]
pub rated_input_power: f64,
#[serde(rename = "EmergencyBallastLumenFactor", default, skip_serializing_if = "Option::is_none")]
pub emergency_ballast_lumen_factor: Option<f64>,
#[serde(rename = "EmergencyRatedLuminousFlux", default, skip_serializing_if = "Option::is_none")]
pub emergency_rated_luminous_flux: Option<i32>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Equipments {
#[serde(rename = "Equipment", default)]
pub equipment: Vec<Equipment>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EquipmentReference {
#[serde(rename = "@equipmentId")]
pub equipment_id: String,
}