Execution¶
@wire¶
Creates a wire that can be scheduled to a mesh to run shards code.
It has the following parameters.
| Order / Name | Type | Default | What it does |
|---|---|---|---|
| 0 — Name | Identifier | — (required) | The wire’s name. Must be an identifier. |
| 1 — Shards | Shards sequence |
— (required) | The shards code to execute. |
| 2 — Traits | Sequence of Trait values | empty | Optional traits applied to the wire; each element must be a trait. |
| 3 — Looped | bool | false |
Whether the wire runs once or is looped and runs infinitely. |
| 4 — Pure | bool | false (or forced true if impure wires are disallowed) |
Marks the wire as pure; they do not copy the parent Wire's variables |
| 5 — Unsafe | bool | false (ignored if unsafe is disallowed) |
Enables “unsafe” behavior when the environment allows it. |
| 6 — StackSize | integer (bytes) | env min; rounded up to /4 | Custom stack size (min clamp and 4-byte alignment applied) when allowed by env. |
| 7 — Priority | integer | 0 |
Execution priority. |
@wire(y {
"Hello world" |
Log |
Pause(0.1)
} Looped: true)
@mesh¶
Creates the mesh to schedule wires on.
It only has the Name parameter
| Parameter | Type | Required? | Description |
|---|---|---|---|
| Name | Identifier | Yes | The unique name for the mesh to be created. |
@mesh(Name: main-mesh) // creates a mesh object called main mesh
@schedule¶
Schedules wires on the specified mesh
It has the following parameters.
| Parameter | Type | Description |
|---|---|---|
| Mesh | Identifier (string) | The name of the mesh to schedule on. |
| Wire | Identifier (string) | The wire to schedule on that mesh. |
@wire(wire-y {
"Hello world" |
Log |
Pause(0.1)
} Looped: true)
@mesh(main-mesh)
@schedule(main-mesh wire-y) // wire-y is now scheduled onto main-mesh
@run¶
| Parameter | Type | Description |
|---|---|---|
| Mesh | Identifier (string) | The name of the mesh on which to execute the wire. |
| Wire | Identifier (string) | Specific wire to run on that mesh; if omitted, the default behavior is to run all wires currently registered to the mesh. |
| TickTimer | Float | Optional — specifies the interval (in seconds or ticks) between each run. |
| Runs | Integer | Optional — specifies how many times to run the wire before stopping. 0 or leaving it unset typically means run indefinitely (or until manually stopped). |
@wire(wire-y {
"Hello world" |
Log
} Looped: true)
@mesh(main-mesh)
@schedule(main-mesh wire-y) // wire-y is now scheduled onto main-mesh
@run(main-mesh 1.0 3) // runs main mesh 3 times with a 1.0 second interval in between