pub enum Kind {
Show 15 variants
F32,
Color,
Flag,
Enum(&'static [&'static str]),
Sizing,
Min,
Max,
Msg,
Tag,
Str,
Family,
Resource,
Keyframes,
Enter,
Gradient,
}Expand description
How a prop’s value is parsed (per transport) and encoded (binary slots).
Variants§
F32
One number, or a "$length" token. Binary: 1 slot.
Color
One color: 0xRRGGBBAA number or #hex string, or a "$color"
token. Binary: 1 slot (u32).
Flag
Marker, present-or-absent (false = absent). Binary: 0 slots.
Enum(&'static [&'static str])
One of a closed name list. Binary: 1 slot (index).
Sizing
A sizing: number | “fit” | “grow” | “N%” | a size expression
("clamp(400px, 80%, 1000px)", crate::calc) | {grow} |
{percent}, or a "$length" token (a fixed length). Binary: 2 slots
(mode, value), or with mode SIZE_MODE_CALC the mode and a
strref, the expression’s spelling (v19); tagged, 1 slot (the index).
Min
A lower clamp: number | “fit” (the node’s own fit size on that axis)
| a size expression, or a "$length" token. Binary: 2 slots (mode,
value), a sizing’s first two modes, or SIZE_MODE_CALC and a
strref; tagged, 1 slot (the index).
Max
An upper clamp: number | a size expression, or a "$length" token.
Binary as a Min (v19; a plain number before): mode 0 and px, or
SIZE_MODE_CALC and a strref; tagged, 1 slot (the index).
Msg
An arbitrary message payload (a Value). Binary: strref to JSON.
Tag
A message merged into the core’s own event under tag (onDrag,
onKey, onHover, onLayout). Parsed and carried exactly like a
Msg, but null is a legal value: the node still gets the behaviour
(a key sink, a drag source) and its events simply carry no tag —
so an app whose messages are a typed union needs no inert member
just to name a sink.
Str
A plain string (a name, not a message). Binary: strref.
Family
A font family: one of the stock names (FAMILIES) or an installed
or loaded family’s name, which the parser registers and turns into
its handle. Binary: strref (v18).
Resource
A registered resource handle (a font or sound id): the integer form
of the slotmap key. JSON/binary carry it as the 16-hex string the
addon hands out; Lua as an integer; C as a uint64_t.
Keyframes
A keyframe stop list (crate::keyframes::parse reads the plain-data
form). JSON/binary/Lua carry it like a Msg and parse it in the
core; C passes a KuiKeyframe array.
Enter
An entrance (crate::enter::parse reads the plain-data form).
Carried like a Msg and parsed in the core; C fills a KuiEnter.
Gradient
A gradient (crate::gradient::parse reads the plain-data form).
Carried like a Msg and parsed in the core; C fills a
KuiGradient.