pub struct LayoutNodeData {
pub block_id: String,
pub block_stack: Vec<String>,
pub active_block_id: String,
pub extra: Map<String, Value>,
}Expand description
Leaf-only payload — references the block this layout leaf renders.
Group nodes (those with children) carry no data.
Fields§
§block_id: StringThe currently-rendered block for this leaf. Always kept in sync with
active_block_id when block_stack is non-empty — this field is
what every existing (pre-tabs) reader/pruner cares about, so a leaf
with no stack behaves identically to before this field existed.
block_stack: Vec<String>In-pane tabs (SPEC_PANE_TAB_STRIP_AGENT_TERMINAL_2026_07_20.md §4.3):
every blockId hosted by this leaf, ordered; empty/absent means “no
stack, just block_id” — 100% back-compat with every layout written
before this field existed. When non-empty, block_id MUST equal
active_block_id and MUST be a member of this list.
active_block_id: StringThe active member of block_stack. Empty/unused when block_stack
is empty. Kept as an explicit field (rather than only ever reading
block_id) so intent is unambiguous in the wire format.
extra: Map<String, Value>Catch-all for unknown fields — preserves forward-compat when the
frontend writes additional fields we don’t yet model. Uses
serde_json::Map (insertion-ordered) for deterministic round-trips.
Trait Implementations§
Source§impl Clone for LayoutNodeData
impl Clone for LayoutNodeData
Source§fn clone(&self) -> LayoutNodeData
fn clone(&self) -> LayoutNodeData
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more