Skip to main content

formualizer_eval/formula_plane/
grid.rs

1//! Bounded and unbounded grid-shape descriptors for future storage planning.
2//!
3//! See FORMULA_PLANE_V2.md, VIRTUAL_REFERENCES.md, and PHASE_8_COMPATIBILITY_NOTES.md.
4
5#[cfg(feature = "serde")]
6use serde::{Deserialize, Serialize};
7
8/// Bounded grid shape in rows and columns.
9#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
10#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
11pub struct GridShape {
12    pub rows: u32,
13    pub cols: u32,
14}
15
16/// Extent descriptor for a future grid or external range.
17#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
18#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
19pub enum GridExtent {
20    Bounded(GridShape),
21    UnboundedRows { cols: u32 },
22    UnboundedCols { rows: u32 },
23    Unknown,
24}
25
26/// Cardinality descriptor for a future scalar or range reference.
27#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
28#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
29pub enum RangeCardinality {
30    Scalar,
31    Bounded { rows: u32, cols: u32 },
32    UnboundedRows { cols: u32 },
33    UnboundedCols { rows: u32 },
34    Unknown,
35}