use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::history::{FeatureHistory, FeatureInputLane};
pub const SLDPRT_NATIVE_VERSION: u32 = 1;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
pub struct SldprtNative {
pub version: u32,
#[serde(default)]
pub feature_histories: Vec<FeatureHistory>,
#[serde(default)]
pub feature_input_lanes: Vec<FeatureInputLane>,
}
impl Default for SldprtNative {
fn default() -> Self {
Self {
version: SLDPRT_NATIVE_VERSION,
feature_histories: Vec::new(),
feature_input_lanes: Vec::new(),
}
}
}
impl SldprtNative {
pub(crate) fn finalize(&mut self) {
self.feature_histories
.sort_by(|left, right| left.id.cmp(&right.id));
self.feature_input_lanes
.sort_by(|left, right| left.id.cmp(&right.id));
}
}