use hamelin_lib::func::defs::{
NumericRange, NumericRangeInclusive, TimestampRange, TimestampRangeInclusive,
};
use crate::registry::EvalRegistry;
use crate::value::{RangeValue, Value};
pub fn register(registry: &mut EvalRegistry) {
registry.register_eval::<NumericRange>(|mut bindings| {
let left = bindings.take()?;
let right = bindings.take()?;
Ok(Value::Range(Box::new(RangeValue {
lower: Some(left),
upper: Some(right),
})))
});
registry.register_eval::<TimestampRange>(|mut bindings| {
let left = bindings.take()?;
let right = bindings.take()?;
Ok(Value::Range(Box::new(RangeValue {
lower: Some(left),
upper: Some(right),
})))
});
registry.register_eval::<NumericRangeInclusive>(|mut bindings| {
let left = bindings.take()?;
let right = bindings.take()?;
Ok(Value::Range(Box::new(RangeValue {
lower: Some(left),
upper: Some(right),
})))
});
registry.register_eval::<TimestampRangeInclusive>(|mut bindings| {
let left = bindings.take()?;
let right = bindings.take()?;
Ok(Value::Range(Box::new(RangeValue {
lower: Some(left),
upper: Some(right),
})))
});
}