○
Planned This feature is planned but not yet implemented.
Feature: Kernel array initialization
Code
// TEST: kernel.init with array of bodies
//
// When source contains nested {} blocks, init creates an array.
// Count is implied from the number of blocks.
const std = @import("std");
~import std/kernel
// Declare the shape
~std/kernel:shape(Body) {
x: f64,
y: f64,
mass: f64,
}
// Initialize multiple bodies - array mode!
~std/kernel:init(Body) {
{ x: 0.0, y: 0.0, mass: 1.0 },
{ x: 1.0, y: 0.0, mass: 0.5 },
{ x: 2.0, y: 0.0, mass: 0.25 },
}
// Access the generated array
pub fn main() void {
std.debug.print("bodies[0].x={d}, bodies[2].mass={d}, len={d}\n", .{
kernel_data[0].x,
kernel_data[2].mass,
kernel_data.len,
});
}
Flows
flow ~shape click a branch to expand · @labels scroll to their anchor
shape (expr: Body, source: x: f64,
y: f64,
mass: f64,)
flow ~init click a branch to expand · @labels scroll to their anchor
init (expr: Body, source: { x: 0.0, y: 0.0, mass: 1.0 },
{ x: 1.0, y: 0.0, mass: 0.5 },
{ x: 2.0, y: 0.0, mass: 0.25 },)