use serde::{Serialize, Deserialize};
use super::*;
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
#[serde(rename = "RSLogix5000Content")]
pub struct Project {
#[serde(rename = "@SchemaRevision", default)]
pub schema_revision: String,
#[serde(rename = "@SoftwareRevision", default)]
pub software_revision: String,
#[serde(rename = "@ArchitectureID", default, skip_serializing_if = "Option::is_none")]
pub architecture_id: Option<String>,
#[serde(rename = "@TargetName", default, skip_serializing_if = "Option::is_none")]
pub target_name: Option<String>,
#[serde(rename = "@TargetType", default, skip_serializing_if = "Option::is_none")]
pub target_type: Option<String>,
#[serde(rename = "@TargetSubType", default, skip_serializing_if = "Option::is_none")]
pub target_sub_type: Option<String>,
#[serde(rename = "@TargetClass", default, skip_serializing_if = "Option::is_none")]
pub target_class: Option<String>,
#[serde(rename = "@TargetCount", default, skip_serializing_if = "Option::is_none")]
pub target_count: Option<String>,
#[serde(rename = "@TargetRevision", default, skip_serializing_if = "Option::is_none")]
pub target_revision: Option<String>,
#[serde(rename = "@TargetLastEdited", default, skip_serializing_if = "Option::is_none")]
pub target_last_edited: Option<String>,
#[serde(rename = "@TargetSignature", default, skip_serializing_if = "Option::is_none")]
pub target_signature: Option<String>,
#[serde(rename = "@TargetIsEncrypted", default, skip_serializing_if = "Option::is_none")]
pub target_is_encrypted: Option<String>,
#[serde(rename = "@CurrentLanguage", default, skip_serializing_if = "Option::is_none")]
pub current_language: Option<String>,
#[serde(rename = "@ContainsContext", default, skip_serializing_if = "Option::is_none")]
pub contains_context: Option<String>,
#[serde(rename = "@Owner", default, skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(rename = "@ExportDate", default, skip_serializing_if = "Option::is_none")]
pub export_date: Option<String>,
#[serde(rename = "@ExportOptions", default, skip_serializing_if = "Option::is_none")]
pub export_options: Option<String>,
#[serde(rename = "@ForceMemorySaving", default, skip_serializing_if = "Option::is_none")]
pub force_memory_saving: Option<String>,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
#[serde(rename = "Controller", default)]
pub controller: Option<Controller>,
}