                     validBufferBytes = 0
                     return true
                 }
-                // If the line started at 0, we've already attempted to re-load,
-                // so throw an error.
-                if lineStart == 0 {
-                    throw CSVProcessorErrors.rowTooLarge(row: row)
-                }
-                // Extend the array.
-                try fetchNewData(lineStart: lineStart)
-                offset = 0
-                return try parseRow(
-                    cellArray: &cellArray,
-                    row: row)
+                return try retryRow(cellArray: &cellArray, row: row, lineStart: lineStart)
             }
         }
     }

                    // Finished the file in the middle of a cell.
                    throw CSVProcessorErrors.truncatedCell(row: row)
                }
                // If the line started at 0, we've already attempted to re-load,
                // so throw an error.
                if lineStart == 0 {
                    throw CSVProcessorErrors.rowTooLarge(row: row)
                }
                // Extend the array.
                try fetchNewData(lineStart: lineStart)
                offset = 0
                return try parseRow(
                    cellArray: &cellArray,
                    row: row)
            default:
                // Un-quoted cell parsing.
                cellLoop: for i in (offset+1)..<validBufferBytes {

        validBufferBytes = readCount + moveCount
    }

    @usableFromInline
    func retryRow(
        cellArray: inout [CSVCell], row: Int, lineStart: Int
    ) throws -> Bool {
        // If the line started at 0, we've already attempted to re-load,
        // so throw an error.
        if lineStart == 0 {
            throw CSVProcessorErrors.rowTooLarge(row: row)
        }
        // Extend the array.
        try fetchNewData(lineStart: lineStart)
        offset = 0
        return try parseRow(
            cellArray: &cellArray,
            row: row)
    }

    public let metadata: CSVGuess

    @usableFromInline
