.net 8 syntax/perf changes

This commit is contained in:
Asriel Camora
2024-03-15 01:28:58 -07:00
parent 836e983eb2
commit 94ea1f84de
20 changed files with 117 additions and 136 deletions
+5 -13
View File
@@ -7,26 +7,18 @@ using System.Runtime.InteropServices;
namespace Craftimizer.Solver;
[StructLayout(LayoutKind.Auto)]
public struct SimulationNode
public struct SimulationNode(in SimulationState state, ActionType? action, CompletionState completionState, ActionSet actions)
{
public readonly SimulationState State;
public readonly ActionType? Action;
public readonly CompletionState SimulationCompletionState;
public readonly SimulationState State = state;
public readonly ActionType? Action = action;
public readonly CompletionState SimulationCompletionState = completionState;
public ActionSet AvailableActions;
public ActionSet AvailableActions = actions;
public readonly CompletionState CompletionState => GetCompletionState(SimulationCompletionState, AvailableActions);
public readonly bool IsComplete => CompletionState != CompletionState.Incomplete;
public SimulationNode(in SimulationState state, ActionType? action, CompletionState completionState, ActionSet actions)
{
State = state;
Action = action;
SimulationCompletionState = completionState;
AvailableActions = actions;
}
public static CompletionState GetCompletionState(CompletionState simCompletionState, ActionSet actions) =>
actions.IsEmpty && simCompletionState == CompletionState.Incomplete ?
CompletionState.NoMoreActions :