Hi, can someone tell me if there's a nice way to write this? optimally I'd like to define the graph in one go but it seems I have to allocate each connections_out separately and then point the slices towards them.
EDIT: See below for a better version.
pub const GraphNode = struct {
name: []const u8,
connections_out: []*GraphNode = &.{},
};
pub const Graph = struct {
nodes: []GraphNode = &.{},
};
var self_nodes: [5]GraphNode = .{
.{ .name = "start" },
.{ .name = "GenerateVoronoiMap1" },
.{ .name = "generate_landscape_from_image" },
.{ .name = "beaches" },
.{ .name = "exit" },
};
pub var self: Graph = .{};
pub fn getGraph() *const Graph {
self_nodes[0].connections_out = &.{&self.nodes[1]};
self_nodes[1].connections_out = &.{&self.nodes[2]};
self_nodes[2].connections_out = &.{&self.nodes[3]};
self_nodes[3].connections_out = &.{&self.nodes[4]};
self_nodes[4].connections_out = &.{};
self.nodes = self_nodes[0..];
return &self;
}