Skip to main content

sim_expr_tree_calc/
lib.rs

1#![forbid(unsafe_code)]
2//! Bounded incremental calculation for ordinary expression-tree values.
3//!
4//! Cell sources are ordinary [`sim_kernel::Expr`] graphs evaluated through a
5//! fresh [`sim_kernel::Cx`]; successful results remain ordinary
6//! [`sim_kernel::Value`] handles. The calculator adds dynamic tree-reference
7//! observation, dependency-first pull verification, deterministic cycles,
8//! canonical fingerprint cutoff, conservative volatility for noncanonical
9//! values, inherited triggers, directed force modes, immutable authority
10//! diminution, restartable automatic queues, bounded standard progress streams,
11//! versioned Table-backed graph snapshots, explicit non-watch backend refresh,
12//! calculation receipts, explanations, failure memos, and explicitly labelled
13//! last-good recovery without introducing a product-specific value enum.
14
15mod calc;
16mod policy;
17
18pub use calc::{
19    AuthorityDigest, AuthorityPolicyPatch, AutomaticBudget, AutomaticContinuation,
20    AutomaticQueueSnapshot, AutomaticRun, BackendRefreshSample, CalcError, CalcExplanation,
21    CalcLimits, CalcOutcome, CalcPolicyPatch, CalcQuery, CalcReason, CalcReceipt, CalcRequestMode,
22    CalcStatus, CalcTrigger, CalcWatch, CellFailure, CycleMode, DERIVED_SNAPSHOT_KEY,
23    DependencyStamp, DerivedPersistReport, DerivedRestoreDisposition, DerivedRestoreReport,
24    DerivedSnapshotError, DerivedTableAdapter, DirectedCalcReport, DirectedCellResult, EffectStamp,
25    EffectiveAuthority, EffectiveCalcPolicy, EncodedFace, ErrorMode, ExprTreeCalc, FaceContent,
26    FaceDimension, FaceIssue, FaceMetadata, FacePosition, GRAPH_SCHEMA_VERSION,
27    HARD_MAX_EXPR_DEPTH, HARD_MAX_OBSERVATIONS, HARD_MAX_OUTPUT, HARD_MAX_QUERY_DEPTH,
28    HARD_MAX_WORK, LastGoodValue, MountRefreshSource, PolicyDigest, QueuedCalculation,
29    RefreshError, RefreshReport, RequestId, SourceEditOutcome,
30};
31pub use policy::{EXPR_TREE_REF, ExprTreeRefPolicy};
32pub use sim_expr_tree_core::{CodecPolicyPatch, EffectiveCodecPolicy, FaceBudget};
33
34/// Returns the crate's public scaffold identity.
35pub fn crate_identity() -> &'static str {
36    "sim-expr-tree-calc"
37}
38
39/// Returns the core crate identity used by this scaffold dependency.
40pub fn core_identity() -> &'static str {
41    sim_expr_tree_core::crate_identity()
42}
43
44#[cfg(test)]
45mod tests;