#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
pub use super::header::*;
pub mod sensors;
pub use sensors::*;
pub mod files;
pub use files::*;
pub mod photometries;
pub use photometries::*;
pub mod lightsources;
pub use lightsources::*;
pub mod electrical;
pub use electrical::*;
pub mod geometries;
pub use geometries::*;
use serde::{Deserialize, Serialize};
fn is_emitters_empty(emitters: &Option<Emitters>) -> bool {
match emitters {
None => true,
Some(e) => e.is_empty(),
}
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct GeneralDefinitions {
#[serde(
rename = "Files",
default,
skip_serializing_if = "files::files_is_empty"
)]
pub files: Files,
#[serde(rename = "Sensors", skip_serializing_if = "Option::is_none")]
pub sensors: Option<Sensors>,
#[serde(rename = "Photometries", skip_serializing_if = "Option::is_none")]
pub photometries: Option<Photometries>,
#[serde(rename = "Spectrums", skip_serializing_if = "Option::is_none")]
pub spectrums: Option<Spectrums>,
#[serde(rename = "LightSources", skip_serializing_if = "Option::is_none")]
pub light_sources: Option<LightSources>,
#[serde(rename = "ControlGears", skip_serializing_if = "Option::is_none")]
pub control_gears: Option<ControlGears>,
#[serde(rename = "Equipments", skip_serializing_if = "Option::is_none")]
pub equipments: Option<Equipments>,
#[serde(rename = "Emitters", skip_serializing_if = "is_emitters_empty")]
pub emitters: Option<Emitters>,
#[serde(rename = "Geometries", skip_serializing_if = "Option::is_none")]
pub geometries: Option<Geometries>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ProductSerie {
#[serde(rename = "@id", default)]
pub id: String,
#[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 = "Pictures", skip_serializing_if = "Option::is_none")]
pub pictures: Option<Images>,
#[serde(rename = "Hyperlinks", skip_serializing_if = "Option::is_none")]
pub hyperlinks: Option<Hyperlinks>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ProductSeries {
#[serde(rename = "ProductSerie", default)]
pub product_serie: Vec<ProductSerie>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Image {
#[serde(rename = "@imageType")]
pub image_type: String,
#[serde(rename = "@fileId")]
pub file_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Images {
#[serde(rename = "Image", default)]
pub image: Vec<Image>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Hyperlink {
#[serde(rename = "@href")]
pub href: String,
#[serde(rename = "@language", skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(rename = "@region", skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(rename = "@countryCode", skip_serializing_if = "Option::is_none")]
pub country_code: Option<String>,
#[serde(rename = "$text")]
pub value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Hyperlinks {
#[serde(rename = "Hyperlink", default)]
pub hyperlink: Vec<Hyperlink>,
}