use crate::model::variable::VariableId;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum DurationSpec {
Fixed(u64),
Variable(VariableId),
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Interval {
start: VariableId,
duration: DurationSpec,
end: VariableId,
}
impl Interval {
pub fn new(start: VariableId, duration: DurationSpec, end: VariableId) -> Self {
Self {
start,
duration,
end,
}
}
#[inline]
pub fn start(&self) -> VariableId {
self.start
}
#[inline]
pub fn duration(&self) -> DurationSpec {
self.duration
}
#[inline]
pub fn end(&self) -> VariableId {
self.end
}
}