use super::cat_power::*;
use super::elev::*;
use super::heading::*;
use super::link_idx::*;
use super::speed::*;
use crate::imports::*;
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, SerdeAPI)]
#[altrios_api()]
pub struct Link {
pub elevs: Vec<Elev>,
#[serde(default)]
pub headings: Vec<Heading>,
#[api(skip_get, skip_set)]
pub speed_sets: Vec<OldSpeedSet>,
#[serde(default)]
pub cat_power_limits: Vec<CatPowerLimit>,
pub length: si::Length,
pub idx_next: LinkIdx,
pub idx_next_alt: LinkIdx,
pub idx_prev: LinkIdx,
pub idx_prev_alt: LinkIdx,
pub idx_curr: LinkIdx,
pub idx_flip: LinkIdx,
#[serde(default)]
pub link_idxs_lockout: Vec<LinkIdx>,
}