pub fn slot_extract_content(
bits: u64,
kind: NativeKind,
) -> (Option<Value>, Option<String>, Option<String>)Expand description
If the slot carries a renderable Content shape (Content node, DataTable,
or TableView), return (content_json, content_html, content_terminal).
Otherwise all three are None.
W18.2 (R8 — output-adapter integration): the kind-threaded content
dispatch is rebuilt on top of the surviving 6-renderer infrastructure
(TERMINAL / HTML / MARKDOWN / JSON / PLAIN). Slot bits are dispatched
per HeapKind, the underlying typed payload is materialised as a
ContentNode, and each renderer projects the node into its own
output shape:
- JSON via
crate::renderers::json::JsonRendererparsed intoserde_json::Value(the renderer guarantees valid JSON per therenderers::cross_renderer_tests::json_is_valid_jsonregression). - HTML via
crate::renderers::html::HtmlRenderer. - Terminal via
crate::renderers::terminal::TerminalRenderer(ANSI escapes; consumers route to PLAIN when the sink is non-TTY).
Pre-rebuild this function returned (None, None, None) for every
Content-bearing slot per the Phase 1.B placeholder — that scar is
resolved here.