Skip to content

Commit fec1fa2

Browse files
committed
Ensure trim character set does not include escaping scalar
1 parent eece70e commit fec1fa2

1 file changed

Lines changed: 11 additions & 0 deletions

File tree

Sources/Active/Reader/ReaderConfiguration.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ extension CSVReader {
6666
self.trimCharacters = configuration.trimStrategry
6767
// 3. Set the escaping scalar.
6868
self.escapingScalar = configuration.escapingStrategy.scalar
69+
// 4. Ensure trim character set does not include escaping scalar
70+
if let escapingScalar = escapingScalar, trimCharacters.contains(escapingScalar) {
71+
throw Error.invalidTrimCharacter(escapingScalar: escapingScalar, trimCharacters: trimCharacters)
72+
}
6973
}
7074
}
7175
}
@@ -79,4 +83,11 @@ fileprivate extension CSVReader.Error {
7983
help: "Set different delimiters for field and rows.",
8084
userInfo: ["Delimiter": delimiter])
8185
}
86+
87+
static func invalidTrimCharacter(escapingScalar: Unicode.Scalar, trimCharacters: CharacterSet) -> CSVError<CSVReader> {
88+
.init(.invalidConfiguration,
89+
reason: "The trim characters set can not include the escaping scalar.",
90+
help: "Remove the escaping scalar from the trim characters set.",
91+
userInfo: ["Escaping scalar": escapingScalar, "Trim characters": trimCharacters])
92+
}
8293
}

0 commit comments

Comments
 (0)