1# llimphi-wire-view23Serializable IR of a subset of `View<Msg>`.
45A `WireNode` mirrors the shape of `llimphi_compositor::View`: a tree of boxes with
6flex direction, dimensions, padding, fill, radius, an optional text and handlers.
7The key difference: the callbacks **do not cross the WASM boundary**. Instead of
8a `Fn() -> Msg`, every interactive node carries `on_click: Option<Vec<u8>>` — the
9postcard bytes of the guest's `Msg`. The host bounces those bytes back to the
10guest's `dispatch`, which decodes them and runs its `update`. Since in Llimphi
11`on_click` is already an `Option<Msg>` by value (not a closure), the mapping is
12direct.
1314`no_std + alloc`: the same IR serves a `no_std` guest (even a wawa app) and the
15host with std.
1617---
1819Part of **llimphi** — see [llimphi](../README.md).
README.md
llimphi-wire-view
Serializable IR of a subset of View<Msg>.
A WireNode mirrors the shape of llimphi_compositor::View: a tree of boxes with
flex direction, dimensions, padding, fill, radius, an optional text and handlers.
The key difference: the callbacks do not cross the WASM boundary. Instead of
a Fn() -> Msg, every interactive node carries on_click: Option<Vec<u8>> — the
postcard bytes of the guest's Msg. The host bounces those bytes back to the
guest's dispatch, which decodes them and runs its update. Since in Llimphi
on_click is already an Option<Msg> by value (not a closure), the mapping is
direct.
no_std + alloc: the same IR serves a no_std guest (even a wawa app) and the
host with std.