#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
use serde::{Deserialize, Serialize};
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct PhotometryFileReference {
#[serde(rename = "@fileId")]
pub file_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TenthPeakDivergence {
#[serde(rename = "C0-C180", skip_serializing_if = "Option::is_none")]
pub c0_c180: Option<f64>,
#[serde(rename = "C90-C270", skip_serializing_if = "Option::is_none")]
pub c90_c270: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct HalfPeakDivergence {
#[serde(rename = "C0-C180", skip_serializing_if = "Option::is_none")]
pub c0_c180: Option<f64>,
#[serde(rename = "C90-C270", skip_serializing_if = "Option::is_none")]
pub c90_c270: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct UGR4H8H705020LQ {
#[serde(rename = "X", skip_serializing_if = "Option::is_none")]
pub x: Option<f64>,
#[serde(rename = "Y", skip_serializing_if = "Option::is_none")]
pub y: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DescriptivePhotometry {
#[serde(rename = "LuminaireLuminance", skip_serializing_if = "Option::is_none")]
pub luminaire_luminance: Option<i32>,
#[serde(rename = "LightOutputRatio", skip_serializing_if = "Option::is_none")]
pub light_output_ratio: Option<f64>,
#[serde(rename = "LuminousEfficacy", skip_serializing_if = "Option::is_none")]
pub luminous_efficacy: Option<f64>,
#[serde(
rename = "DownwardFluxFraction",
skip_serializing_if = "Option::is_none"
)]
pub downward_flux_fraction: Option<f64>,
#[serde(
rename = "DownwardLightOutputRatio",
skip_serializing_if = "Option::is_none"
)]
pub downward_light_output_ratio: Option<f64>,
#[serde(
rename = "UpwardLightOutputRatio",
skip_serializing_if = "Option::is_none"
)]
pub upward_light_output_ratio: Option<f64>,
#[serde(
rename = "TenthPeakDivergence",
skip_serializing_if = "Option::is_none"
)]
pub tenth_peak_divergence: Option<TenthPeakDivergence>,
#[serde(rename = "HalfPeakDivergence", skip_serializing_if = "Option::is_none")]
pub half_peak_divergence: Option<HalfPeakDivergence>,
#[serde(rename = "PhotometricCode", skip_serializing_if = "Option::is_none")]
pub photometric_code: Option<String>,
#[serde(rename = "CIE-FluxCode", skip_serializing_if = "Option::is_none")]
pub cie_flux_code: Option<String>,
#[serde(rename = "CutOffAngle", skip_serializing_if = "Option::is_none")]
pub cut_off_angle: Option<f64>,
#[serde(
rename = "UGR-4H8H-70-50-20-LQ",
skip_serializing_if = "Option::is_none"
)]
pub ugr4_h8_h705020_lq: Option<UGR4H8H705020LQ>,
#[serde(
rename = "IESNA-LightDistributionDefinition",
skip_serializing_if = "Option::is_none"
)]
pub iesna_light_distribution_definition: Option<String>,
#[serde(
rename = "LightDistributionBUG-Rating",
skip_serializing_if = "Option::is_none"
)]
pub light_distribution_bug_rating: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Photometry {
#[serde(rename = "@id")]
pub id: String,
#[serde(
rename = "PhotometryFileReference",
skip_serializing_if = "Option::is_none"
)]
pub photometry_file_reference: Option<PhotometryFileReference>,
#[serde(
rename = "DescriptivePhotometry",
skip_serializing_if = "Option::is_none"
)]
pub descriptive_photometry: Option<DescriptivePhotometry>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Photometries {
#[serde(rename = "Photometry", default)]
pub photometry: Vec<Photometry>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SpectrumFileReference {
#[serde(rename = "@fileId")]
pub file_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Intensity {
#[serde(rename = "@wavelength", skip_serializing_if = "Option::is_none")]
pub wavelength: Option<i32>,
#[serde(rename = "$text", skip_serializing_if = "Option::is_none")]
pub value: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Spectrum {
#[serde(rename = "@id")]
pub id: String,
#[serde(rename = "SpectrumFileReference")]
pub spectrum_file_reference: SpectrumFileReference,
#[serde(rename = "Intensity", default)]
pub intensity: Vec<Intensity>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Spectrums {
#[serde(rename = "Spectrum", default)]
pub spectrum: Vec<Spectrum>,
}