#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
use serde::{Deserialize, Serialize};
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "FormatVersion")]
pub struct FormatVersion {
#[serde(rename = "@major", default)]
pub major: i32,
#[serde(rename = "@minor", default)]
pub minor: i32,
#[serde(rename = "@pre-release", default, skip_serializing_if = "is_zero")]
pub pre_release: i32,
}
fn is_zero(val: &i32) -> bool {
*val == 0
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename = "LicenseKey")]
pub struct LicenseKey {
#[serde(rename = "@application", default)]
pub application: String,
#[serde(rename = "$text", default)]
pub license_key: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LicenseKeys {
#[serde(rename = "LicenseKey", default)]
pub license_key: Vec<LicenseKey>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EMail {
#[serde(rename = "@mailto", default)]
pub mailto: String,
#[serde(rename = "$text", default)]
pub value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct EMailAddresses {
#[serde(rename = "EMail", default)]
pub e_mail: Vec<EMail>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Address {
#[serde(rename = "FirstName")]
pub first_name: String,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "Street")]
pub street: String,
#[serde(rename = "ZIPCode")]
pub zip_code: String,
#[serde(rename = "City")]
pub city: String,
#[serde(rename = "Country")]
pub country: String,
#[serde(rename = "Phone")]
pub phone: String,
#[serde(rename = "EMailAddresses")]
pub e_mail_addresses: EMailAddresses,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Contact {
#[serde(rename = "Address", default)]
pub address: Vec<Address>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Header {
#[serde(rename = "Author", default)]
pub author: String,
#[serde(rename = "Manufacturer", default)]
pub manufacturer: String,
#[serde(rename = "GldfCreationTimeCode", alias = "CreationTimeCode", default)]
pub creation_time_code: String,
#[serde(rename = "CreatedWithApplication", default)]
pub created_with_application: String,
#[serde(rename = "FormatVersion", default)]
pub format_version: FormatVersion,
#[serde(rename = "DefaultLanguage", default, skip_serializing_if = "Option::is_none")]
pub default_language: Option<String>,
#[serde(rename = "LicenseKeys", default, skip_serializing_if = "Option::is_none")]
pub license_keys: Option<LicenseKeys>,
#[serde(rename = "ReluxMemberId", default, skip_serializing_if = "Option::is_none")]
pub relux_member_id: Option<String>,
#[serde(rename = "DIALuxMemberId", default, skip_serializing_if = "Option::is_none")]
pub dia_lux_member_id: Option<String>,
#[serde(rename = "Contact", default)]
pub contact: Contact,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Locale {
#[serde(rename = "@language", default)]
pub language: String,
#[serde(rename = "$text", default)]
pub value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LocaleFoo {
#[serde(rename = "Locale", default)]
pub locale: Vec<Locale>,
}