Skip to main content

SpillValueReader

Trait SpillValueReader 

Source
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§

Source

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".

Implementors§