Skip to main content

Module layout

Module layout 

Source
Expand description

The shared, versioned LayoutDescriptor/SheetLayout/CellLayout serde shapes (D-05) — the FULL workbook-layout descriptor the bundle’s layout.json member serializes and the writer replays. The shared, versioned LayoutDescriptor serde model (Phase 12, Plan 01).

This is the SINGLE shared definition (umya-free, zip-free) the offline emitter (workbook-compiler::artifact::layout::build_layout_descriptor) and the serve-time writer (Plan 02) BOTH use — the Codex HIGH #2 single-definition discipline that artifact_model.rs already follows for CellMap/BundleLock. Defining it here (and NOT in either the compiler or the served binary) keeps the descriptor’s serde shape free of any umya/rust_xlsxwriter type: it derives ONLY over String/Option/Vec/bool/u32/u16/f64.

The descriptor captures the FULL ingested workbook layout (D-05) — a “copy of the workbook,” not a synthetic minimal stub — so the writer can replay it and inject the computed values (D-06). It is hashed into the BUNDLE.lock combined hash exactly like cell_map.json (so the boot integrity check covers it).

The descriptor stores each cell’s A1 addr; the writer converts A1 → the rust_xlsxwriter (row, col) coordinate via crate::resolve::parse_a1 (RESEARCH Pitfall 3 — never re-parse A1).

Structs§

CellLayout
One captured cell: its A1 address within the owning sheet + the original formula/value text + the number format + the fill/font ARGBs. Every field is owned + Option-where-absent so the writer replays exactly what the offline ingest captured (no umya type crosses this boundary).
LayoutDescriptor
The FULL captured workbook layout (D-05) — the bundle’s layout.json member.
SheetLayout
One captured sheet: its name + visibility + every captured cell + the merges (A1 ranges) + the per-column widths + the hidden columns.

Constants§

LAYOUT_DESCRIPTOR_VERSION
The current LayoutDescriptor schema version (review item 6 — the descriptor is explicitly versioned + attributable so the writer can refuse a future incompatible shape).