osdm_sys/models/
timed_leg_specification.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
17pub struct TimedLegSpecification {
18 #[serde(rename = "start")]
19 pub start: Box<models::BoardSpecification>,
20 #[serde(rename = "intermediates", skip_serializing_if = "Option::is_none")]
21 pub intermediates: Option<Vec<models::IntermediateSpecification>>,
22 #[serde(rename = "end")]
23 pub end: Box<models::AlightSpecification>,
24 #[serde(rename = "service")]
25 pub service: Box<models::DatedJourney>,
26}
27
28impl TimedLegSpecification {
29 pub fn new(start: models::BoardSpecification, end: models::AlightSpecification, service: models::DatedJourney) -> TimedLegSpecification {
31 TimedLegSpecification {
32 start: Box::new(start),
33 intermediates: None,
34 end: Box::new(end),
35 service: Box::new(service),
36 }
37 }
38}
39