public override void WriteComment(ReadOnlySpan <char> comment) { AssertNotDisposed(this); AssertNotPoisoned(Configuration); try { WriteHeadersAndEndRowIfNeeded(); var options = Configuration.Options; var commentCharNullable = options.CommentCharacter; if (commentCharNullable == null) { Throw.InvalidOperationException($"No {nameof(Options.CommentCharacter)} configured, cannot write a comment line"); } var commentChar = commentCharNullable.Value; var rowEndingSpan = Configuration.RowEndingMemory.Span; var splitIx = Utils.FindNextIx(0, comment, rowEndingSpan); if (splitIx == -1) { // single segment PlaceCharInStaging(commentChar); if (comment.Length > 0) { PlaceAllInStaging(comment); } } else { // multi segment var prevIx = 0; var isFirstRow = true; while (splitIx != -1) { if (!isFirstRow) { EndRecord(); } PlaceCharInStaging(commentChar); var segSpan = comment[prevIx..splitIx];