func nextLine()

in Sources/XCMetricsClient/Mobius/Effect Handlers/DumpParser/DumpReader.swift [41:59]


    func nextLine() -> Data? {
        if isEOF { return nil }

        repeat {
            if let range = buffer.range(of: delimiter, options: [], in: buffer.startIndex..<buffer.endIndex) {
                let bufferSliceData = buffer.subdata(in: buffer.startIndex..<range.lowerBound)
                buffer.replaceSubrange(buffer.startIndex..<range.upperBound, with: [])
                return bufferSliceData
            } else {
                let tempData = fileHandle.readData(ofLength: chunkSize)
                if tempData.count == 0 {
                    isEOF = true
                    // left state of a buffer
                    return (buffer.count > 0) ? buffer : nil
                }
                buffer.append(tempData)
            }
        } while true
    }