private void FinalizeCurrentObject(bool @explicit) { if (_stateMachine.Current != Kv1TextReaderState.InObjectBeforeKey && _stateMachine.Current != Kv1TextReaderState.InObjectAfterValue) { throw new InvalidOperationException( string.Format( CultureInfo.InvariantCulture, "Attempted to finalize object while in state {0}.", _stateMachine.Current)); } _stateMachine.PopObject(out var discard); if (_stateMachine.IsInObject) { _stateMachine.Push(Kv1TextReaderState.InObjectAfterValue); } if (discard) { _listener.DiscardCurrentObject(); } else if (@explicit) { _listener.OnObjectEnd(); } }
void FinalizeCurrentObject(bool @explicit) { if (stateMachine.Current != KV1TextReaderState.InObjectBeforeKey && stateMachine.Current != KV1TextReaderState.InObjectAfterValue) { throw new InvalidOperationException($"Attempted to finalize object while in state {stateMachine.Current}."); } stateMachine.PopObject(out var discard); if (stateMachine.IsInObject) { stateMachine.Push(KV1TextReaderState.InObjectAfterValue); } if (discard) { listener.DiscardCurrentObject(); } if (@explicit) { listener.OnObjectEnd(); } }