// Auto-generated PLCopen types - graphics category
// DO NOT EDIT - Generated by build script

use serde::{Serialize, Deserialize};
use super::*;

/// position element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Position {
    /// x attribute
    #[serde(rename = "@x", default)]
    pub x: String,
    /// y attribute
    #[serde(rename = "@y", default)]
    pub y: String,
}

/// connection element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Connection {
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// refLocalId attribute
    #[serde(rename = "@refLocalId", default)]
    pub ref_local_id: String,
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: Option<String>,
    /// position element
    #[serde(rename = "position", default)]
    pub position: Vec<Position>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
}

/// connectionPointIn element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ConnectionPointIn {
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// relPosition element
    #[serde(rename = "relPosition", default)]
    pub rel_position: Option<Position>,
    /// connection element
    #[serde(rename = "connection", default)]
    pub connection: Vec<Connection>,
    /// expression element
    #[serde(rename = "expression", default)]
    pub expression: Option<String>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
}

/// connectionPointOut element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ConnectionPointOut {
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// relPosition element
    #[serde(rename = "relPosition", default)]
    pub rel_position: Option<Position>,
    /// expression element
    #[serde(rename = "expression", default)]
    pub expression: Option<String>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
}

/// ldObjects_leftPowerRail_InlineType_connectionPointOut_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct LdObjects_leftPowerRail_InlineType_connectionPointOut_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
}

/// sfcObjects_selectionConvergence_InlineType_connectionPointIn_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_selectionConvergence_InlineType_connectionPointIn_Inline {
}

/// sfcObjects_simultaneousDivergence_InlineType_connectionPointOut_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_simultaneousDivergence_InlineType_connectionPointOut_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
}

