Skip to main content

read_inline_2s

Function read_inline_2s 

Source
pub fn read_inline_2s(arena: &Arena, word_offset: u32) -> u64
Expand 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.