use crate::stream_engine::time::SpringEventDuration;
#[derive(Clone, Eq, PartialEq, Debug)]
pub enum WindowParameter {
TimedSlidingWindow {
length: SpringEventDuration,
period: SpringEventDuration,
allowed_delay: SpringEventDuration,
},
TimedFixedWindow {
length: SpringEventDuration,
allowed_delay: SpringEventDuration,
},
}
impl WindowParameter {
pub fn length(&self) -> SpringEventDuration {
match self {
WindowParameter::TimedSlidingWindow { length, .. } => *length,
WindowParameter::TimedFixedWindow { length, .. } => *length,
}
}
pub fn period(&self) -> SpringEventDuration {
match self {
WindowParameter::TimedSlidingWindow { period, .. } => *period,
WindowParameter::TimedFixedWindow { length, .. } => *length,
}
}
pub fn allowed_delay(&self) -> SpringEventDuration {
match self {
WindowParameter::TimedSlidingWindow { allowed_delay, .. } => *allowed_delay,
WindowParameter::TimedFixedWindow { allowed_delay, .. } => *allowed_delay,
}
}
}