pub mod bridge;
pub mod multi_rolling;
pub mod rolling;
pub mod rolling_incremental;
pub mod tumbling;
pub mod tumbling_carry;
use reifydb_core::window::engine::{LatePolicy, config::WindowEngineConfig};
use crate::config::Config;
pub(crate) fn late_policy_from_config(config: &Config) -> LatePolicy {
match config.str("__late_policy").as_deref() {
Some("process") => LatePolicy::Process,
_ => LatePolicy::Drop,
}
}
pub(crate) fn window_engine_config(config: &Config) -> WindowEngineConfig {
let mut builder = WindowEngineConfig::builder().late_policy(late_policy_from_config(config));
if let Some(capacity) = config.usize("state_cache_size") {
builder = builder.state_cache_capacity(capacity);
}
if let Some(capacity) = config.usize("internal_state_cache_size") {
builder = builder.internal_state_cache_capacity(capacity);
}
builder.build()
}