Skip to main content

formualizer_eval/formula_plane/
ids.rs

1//! Dependency-light Formula Plane V2 descriptors.
2//!
3//! See FORMULA_PLANE_V2.md.
4
5#[cfg(feature = "serde")]
6use serde::{Deserialize, Serialize};
7
8/// Opaque identifier for a future Formula Plane V2 template.
9#[repr(transparent)]
10#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
11#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
12pub struct FormulaTemplateId(pub u32);
13
14/// Opaque identifier for a future Formula Plane V2 placement or run.
15#[repr(transparent)]
16#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
17#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
18pub struct FormulaRunId(pub u32);
19
20/// 128-bit formula-content fingerprint; construction is deferred.
21#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
22#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
23pub struct FormulaFingerprint {
24    pub hi: u64,
25    pub lo: u64,
26}
27
28/// 128-bit dependency-shape fingerprint; construction is deferred.
29#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
30#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
31pub struct DependencyShapeFingerprint {
32    pub hi: u64,
33    pub lo: u64,
34}