using System.Runtime.CompilerServices; namespace Craftimizer.Solver.Crafty; public class ArenaNode where T : struct { public T State; public readonly List> Children; public readonly ArenaNode? Parent; public ArenaNode(T state, ArenaNode? parent = null) { State = state; Children = new(); Parent = parent; } [MethodImpl(MethodImplOptions.AggressiveInlining)] public ArenaNode Add(T state) { var node = new ArenaNode(state, this); Children.Add(node); return node; } }