mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
An attribute's name and its value type separate: `AttrValue` declares everything `Attribute` does except the name and its name-specific default, and `Named<X, V>` pairs one with a name the graph supplies. The value type stays concrete in the signature while the name varies per instance, so a computed name has nowhere to come from. `LayoutMeta` gains the name-from-input variant the fold consumes: a `FieldWrite` template with every facet minted from the concrete type and only the name left as a placeholder, plus the input position the name's constant sits at. `fold_name` resolves one, preferring the census row's descriptor where the name is declared so a known name keeps its census default. `RecordLayout` carries the folded names so `set_layout` can resolve offsets without a marker's `NAME`. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>