public IEnumerable <CircuitState> GetAllDistinctStates() { CircuitState state = StartState.Copy(); foreach (var step in StepChanges) { state.AddChanges(step.GetChanges(Changes), step.Time); yield return(state); } }
public CircuitState GetStateAtTime(ulong time) { CircuitState state = StartState.Copy(); int length = 0; foreach (var step in StepChanges) { if (step.Time > time) { break; } length = step.StartIndex; } state.AddChanges(Changes.AsSpan(0, length), time); return(state); }