pub fn read_inline_2s(arena: &Arena, word_offset: u32) -> u64Expand description
Task 13 — 2-state build-mode arena and read/write family (ledger ST-100, ST-101, ST-102, ST-139).
A structurally separate function family from commit_write/read_slot/
write_slot above: plain u64, no mask half, no FourStateValue
anywhere in these signatures, and no shared code path with the 4-state
family except Arena itself (ST-139) – which build-mode-specific
function family a compiled kernel calls is fixed once at CODEGEN-compile
time by which family CODEGEN emits calls to, never a runtime branch
inside either family (ST-100, ST-101).
Deviation from the plan’s literal &mut Arena signatures for
write_inline_2s/write_wide_2s: Task 7 r1’s Arena review fix (see
state::arena’s module doc comment) made every growing/writing Arena
accessor &self-based specifically so forming a fresh &mut Arena never
invalidates a previously-minted InstanceHandle’s raw pointer under
Stacked/Tree Borrows; read_slot/write_slot/commit_write_at above
already follow this discipline (&Arena, never &mut Arena). This
family follows the same already-established pattern for the identical
reason – a &mut Arena parameter here would be the one Arena-mutating
call path in this crate that still forces a fresh &mut Arena into
existence, reintroducing exactly the hazard Task 7 r1 fixed. The
“changed” bool return value the plan’s own prose describes is kept
exactly as specified.
Reads the current 2-state word at word_offset, no diffing.