File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments