Removed un-needed if-let statements in Serializer.serialize(_:) method

This commit is contained in:
Caleb Kleveter 2019-05-20 11:29:42 -05:00
parent 05648329cd
commit b7c93ed182
No known key found for this signature in database
GPG Key ID: B38DBD5CF2C98D69
2 changed files with 4 additions and 12 deletions

View File

@ -103,11 +103,7 @@ public struct Serializer {
if !self.serializedHeaders { if !self.serializedHeaders {
let headers = data.keys.map { title -> [UInt8] in let headers = data.keys.map { title -> [UInt8] in
if let delimiter = self.configuration.cellDelimiter { return title.bytes.escaping(self.configuration.cellDelimiter)
return title.bytes.escaping(delimiter)
} else {
return title.bytes
}
} }
do { try self.onRow(Array(headers.joined(separator: [configuration.cellSeparator]))) } do { try self.onRow(Array(headers.joined(separator: [configuration.cellSeparator]))) }
catch let error { errors.errors.append(error) } catch let error { errors.errors.append(error) }
@ -117,11 +113,7 @@ public struct Serializer {
guard let first = data.first?.value else { return errors.result } guard let first = data.first?.value else { return errors.result }
(first.startIndex..<first.endIndex).forEach { index in (first.startIndex..<first.endIndex).forEach { index in
let cells = data.values.map { column -> [UInt8] in let cells = data.values.map { column -> [UInt8] in
if let delimiter = self.configuration.cellDelimiter { return column[index].bytes.escaping(self.configuration.cellDelimiter)
return column[index].bytes.escaping(delimiter)
} else {
return column[index].bytes
}
} }
do { try onRow(Array(cells.joined(separator: [configuration.cellSeparator]))) } do { try onRow(Array(cells.joined(separator: [configuration.cellSeparator]))) }
catch let error { errors.errors.append(error) } catch let error { errors.errors.append(error) }

View File

@ -38,7 +38,7 @@ final class StressTests: XCTestCase {
let csv = Array(data) let csv = Array(data)
let parsed = SyncParser().parse(csv) let parsed = SyncParser().parse(csv)
// Baseline: 21.951 // Baseline: 21.453
// Time to beat: 11.932 // Time to beat: 11.932
measure { measure {
serializer.serialize(parsed) serializer.serialize(parsed)
@ -50,7 +50,7 @@ final class StressTests: XCTestCase {
let csv = Array(data) let csv = Array(data)
let parsed = SyncParser().parse(csv) let parsed = SyncParser().parse(csv)
// Baseline: 22.721 // Baseline: 22.903
// Time to beat: 11.932 // Time to beat: 11.932
measure { measure {
_ = serializer.serialize(parsed) _ = serializer.serialize(parsed)