reifydb_core/value/column/arith/
context.rs1use crate::{
5 interface::{catalog::property::ColumnSaturationStrategy, evaluate::TargetColumn},
6 value::column::cast::convert::TargetConvert,
7};
8
9#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash)]
10pub enum Overflow {
11 #[default]
12 Target,
13 Error,
14 None,
15 Saturate,
16 Wrap,
17}
18
19#[derive(Debug, Clone, Default)]
20pub struct ArithContext {
21 pub target: Option<TargetColumn>,
22 pub overflow: Overflow,
23}
24
25impl ArithContext {
26 pub fn saturation_policy(&self) -> ColumnSaturationStrategy {
27 TargetConvert {
28 target: self.target.as_ref(),
29 }
30 .saturation_policy()
31 }
32}