     /// the buffer.
     @usableFromInline
     func fetchNewData(
-        buf: inout UnsafeMutableBufferPointer<UInt8>,
         lineStart: Int
     ) throws {
         assert(
-            validBufferBytes == buf.count,
-            "buf.count: \(buf.count), validBufferBytes: \(validBufferBytes)"
+            validBufferBytes == buffer.count,
+            "buffer.count: \(buffer.count), validBufferBytes: \(validBufferBytes)"
         )
-        let moveCount = buf.count - lineStart
-        bufferStartOffset += buf.count - moveCount
-        memmove(buf.baseAddress!, buf.baseAddress! + lineStart, moveCount)
+        let moveCount = buffer.count - lineStart
+        bufferStartOffset += buffer.count - moveCount
+        memmove(buffer.baseAddress!, buffer.baseAddress! + lineStart, moveCount)
         let readCount = input.read(
-            buf.baseAddress! + moveCount,
-            maxLength: buf.count - moveCount)
+            buffer.baseAddress! + moveCount,
+            maxLength:  buffer.count - moveCount)
         validBufferBytes = readCount + moveCount
     }
 

                var cellValue = ""
                var i = offset + 1
                cellLoop: while i < validBufferBytes {
                    let value = Unicode.Scalar(buf[i])
                    switch value {
                    case "\"":
                        if i + 2 >= validBufferBytes && input.hasBytesAvailable {
                            // Extend the buffer.
                            try fetchNewData(buf: &buf, lineStart: lineStart)
                            offset = 0
                            return try parseRow(
                                buf: &buf,
                                offset: &offset,
                                cellArray: &cellArray,
                                row: row)
                        }
                        let next = Unicode.Scalar(buf[i + 1])
                        if next == metadata.separator {
                            cellArray.append(.escaped(cellValue))
                            offset = i + 2

                        // data is there.
                        if i + 1 == validBufferBytes {
                            // Extend the array.
                            try fetchNewData(lineStart: lineStart)
                            offset = 0
                            return try parseRow(
                                offset: &offset,
                                cellArray: &cellArray,
                                row: row)
                        }
                        if Unicode.Scalar(buffer[i + 1]) == "\n" {
                            let cellBuffer = UnsafeBufferPointer<UInt8>(
                                start: buffer.baseAddress! + cellStart,
                                count: i - cellStart)
                            cellArray.append(.raw(cellBuffer))
                            offset = i + 2
