Keywords: module uses friend export internal numbers unsafe mut port bind action reducer registry of as from def open alias component prop view (structure), shows lasts then loads (scenes), system (ecs), dispatch (control), true false null (operators). Attributes: @Ref @OneOf @Range @Unit @Asset @Color, @Node / @Clip / @Material, @Tint @Derived, @Text / @Multiline, @Key, @AppendOnly / @ByKey, @PerMap / @Chunked, @frame @max, @owns / @creates / @releases, @deterministic @alloc_ok. Each is in tools/docgen/inventory.json; every fence that is not marked skip parses (ludicc --fmt). annot-clearcolor's token loses its quotes, which no reader strips. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
17 lines
661 B
Markdown
17 lines
661 B
Markdown
---
|
|
id: kw-mut
|
|
name: mut
|
|
category: structure
|
|
kind: keyword
|
|
tokens: mut
|
|
sig: function f(st: mut State)
|
|
tip: A parameter the function may change - how a state is written.
|
|
order: 58
|
|
---
|
|
|
|
A state reaches a function only as a parameter: <code>h: HikerState</code> to read it, <code>h: mut HikerState</code> to change it, so a function's signature is everything it touches. The compiler refuses a write through a parameter that is not <code>mut</code>, and <code>ludic migrate state --tighten</code> takes <code>mut</code> off every one nothing down the chain writes.
|
|
|
|
```ludic
|
|
state Counter { n: int = 0 }
|
|
function bump(c: mut Counter) -> void { c.n = c.n + 1 }
|
|
```
|