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
}