Skip to main content

reifydb_core/value/column/arith/
context.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4use 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}