osdm-sys 0.1.0-alpha.2

Specifications for the OSDM API standard. The OSDM specification supports two modes of operation: Retailer Mode and Distributor Mode. The API works identically in both modes, except that in distributor mode the API also returns fare information. The following resources are key to get started: - [Processes](https://osdm.io/spec/processes/) - [Models](https://osdm.io/spec/models/) - [Getting started](https://osdm.io/spec/getting-started/)
Documentation
/*
 * UIC 90918-10 - OSDM
 *
 * Specifications for the OSDM API standard. The OSDM specification supports two modes of operation: Retailer Mode and Distributor Mode. The API works identically in both modes, except that in distributor mode the API also returns fare information.  The following resources are key to get started:    -  [Processes](https://osdm.io/spec/processes/)   -  [Models](https://osdm.io/spec/models/)   -  [Getting started](https://osdm.io/spec/getting-started/) 
 *
 * The version of the OpenAPI document: 3.7.0
 * Contact: osdm@uic.org
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// LuggageConstraint : Constraint on the luggage allowed by a passenger to on board. 
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct LuggageConstraint {
    /// standard hand luggage pieces 
    #[serde(rename = "maxHandLuggage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub max_hand_luggage: Option<Option<i32>>,
    /// standard non-hand luggage pieces 
    #[serde(rename = "maxLargeLuggage", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub max_large_luggage: Option<Option<i32>>,
    #[serde(rename = "restrictions", skip_serializing_if = "Option::is_none")]
    pub restrictions: Option<Vec<models::LuggageRestriction>>,
    #[serde(rename = "restrictionRules", skip_serializing_if = "Option::is_none")]
    pub restriction_rules: Option<Vec<models::LuggageRestrictionRuleEnum>>,
}

impl LuggageConstraint {
    /// Constraint on the luggage allowed by a passenger to on board. 
    pub fn new() -> LuggageConstraint {
        LuggageConstraint {
            max_hand_luggage: None,
            max_large_luggage: None,
            restrictions: None,
            restriction_rules: None,
        }
    }
}