use ordered_float::OrderedFloat;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]
pub struct ConnectorInSegment {
pub segment_id: String,
pub connector_id: String,
pub linear_reference: OrderedFloat<f64>,
}
impl ConnectorInSegment {
pub fn new(segment_id: String, connector_id: String, linear_reference: f64) -> Self {
Self {
segment_id,
connector_id,
linear_reference: OrderedFloat(linear_reference),
}
}
pub fn new_without_connector_id(segment_id: String, linear_reference: f64) -> Self {
let connector_id = format!("{segment_id}@{linear_reference}");
Self {
segment_id,
connector_id,
linear_reference: OrderedFloat(linear_reference),
}
}
}