#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
use serde::{Deserialize, Serialize};
use super::lightsources::LightSourceReference;
use super::LocaleFoo;
#[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,
}