pub trait SpillValueReader {
// Required method
fn read_cell_value(
&self,
sheet: &str,
row: u32,
col: u32,
) -> Option<LiteralValue>;
}Expand description
Builder/controller object that provides exclusive access to the dependency graph for all mutation operations. This ensures consistency and proper change tracking.
§Example Usage
use formualizer_eval::engine::{DependencyGraph, VertexEditor, VertexMeta, VertexKind};
use formualizer_common::LiteralValue;
use formualizer_eval::reference::{CellRef, Coord};
let mut graph = DependencyGraph::new();
let mut editor = VertexEditor::new(&mut graph);
// Batch operations for better performance
editor.begin_batch();
// Create a new cell vertex
let meta = VertexMeta::new(1, 1, 0, VertexKind::Cell).dirty();
let vertex_id = editor.add_vertex(meta);
// Set cell values
let cell_ref = CellRef {
sheet_id: 0,
coord: Coord::new(2, 3, true, true)
};
editor.set_cell_value(cell_ref, LiteralValue::Number(42.0));
// Commit batch operations
editor.commit_batch();
Optional hook for reading Arrow-truth spill values for ChangeLog snapshots.
VertexEditor is structure-only; in canonical mode, callers should provide this reader so spill undo/redo uses Arrow overlays rather than graph value caches.
Required Methods§
fn read_cell_value( &self, sheet: &str, row: u32, col: u32, ) -> Option<LiteralValue>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".