#nullable enable namespace Terminal.Gui; /// /// Describes a response received from the console as a result of a request being sent via . /// public class AnsiEscapeSequenceResponse { // QUESTION: Should this be nullable to indicate there was no error, or is string.Empty sufficient? /// /// Gets the error string received from e.g. see /// /// EscSeqUtils.CSI_SendDeviceAttributes.Request /// /// . /// public required string Error { get; init; } // QUESTION: Does string.Empty indicate no response recevied? If not, perhaps make this property nullable? /// /// Gets the Response string received from e.g. see /// /// EscSeqUtils.CSI_SendDeviceAttributes.Request /// /// . /// public required string? Response { get; init; } // QUESTION: Does string.Empty indicate no terminator expected? If not, perhaps make this property nullable? /// /// /// Gets the terminator that uniquely identifies the response received from /// the console. e.g. for /// /// EscSeqUtils.CSI_SendDeviceAttributes.Request /// /// the terminator is /// /// EscSeqUtils.CSI_SendDeviceAttributes.Terminator /// /// . /// /// /// After sending a request, the first response with matching terminator will be matched /// to the oldest outstanding request. /// /// public required string Terminator { get; init; } /// /// The value expected in the response after the CSI e.g. /// /// EscSeqUtils.CSI_ReportTerminalSizeInChars.Value /// /// should result in a response of the form ESC [ 8 ; height ; width t. In this case, /// will be "8". /// public string? ExpectedResponseValue { get; init; } }