@@ -117,7 +117,7 @@ public struct Tokenizer {
117117
118118 // https://sqlite.org/fts5.html#the_experimental_trigram_tokenizer
119119 public static func Trigram( caseSensitive: Bool = false ) -> Tokenizer {
120- return Tokenizer ( " trigram " , [ " case_sensitive " , caseSensitive ? " 1 " : " 0 " ] )
120+ Tokenizer ( " trigram " , [ " case_sensitive " , caseSensitive ? " 1 " : " 0 " ] )
121121 }
122122
123123 public static func Custom( _ name: String ) -> Tokenizer {
@@ -236,18 +236,12 @@ open class FTSConfig {
236236 }
237237 }
238238
239- @discardableResult mutating func append( _ key: String , value: CustomStringConvertible ? ) -> Options {
240- append ( key, value: value? . description )
239+ @discardableResult mutating func append( _ key: String , value: String ) -> Options {
240+ append ( key, value: Expression < String > ( value) )
241241 }
242242
243- @discardableResult mutating func append( _ key: String , value: String ? ) -> Options {
244- append ( key, value: value. map { Expression < String > ( $0) } )
245- }
246-
247- @discardableResult mutating func append( _ key: String , value: Expressible ? ) -> Options {
248- if let value = value {
249- arguments. append ( " = " . join ( [ Expression < Void > ( literal: key) , value] ) )
250- }
243+ @discardableResult mutating func append( _ key: String , value: Expressible ) -> Options {
244+ arguments. append ( " = " . join ( [ Expression < Void > ( literal: key) , value] ) )
251245 return self
252246 }
253247 }
@@ -256,26 +250,16 @@ open class FTSConfig {
256250/// Configuration for the [FTS4](https://www.sqlite.org/fts3.html) extension.
257251open class FTS4Config : FTSConfig {
258252 /// [The matchinfo= option](https://www.sqlite.org/fts3.html#section_6_4)
259- public enum MatchInfo : CustomStringConvertible {
253+ public enum MatchInfo : String {
260254 case fts3
261- public var description : String {
262- " fts3 "
263- }
264255 }
265256
266257 /// [FTS4 options](https://www.sqlite.org/fts3.html#fts4_options)
267- public enum Order : CustomStringConvertible {
258+ public enum Order : String {
268259 /// Data structures are optimized for returning results in ascending order by docid (default)
269260 case asc
270261 /// FTS4 stores its data in such a way as to optimize returning results in descending order by docid.
271262 case desc
272-
273- public var description : String {
274- switch self {
275- case . asc: return " asc "
276- case . desc: return " desc "
277- }
278- }
279263 }
280264
281265 var compressFunction : String ?
@@ -322,11 +306,21 @@ open class FTS4Config: FTSConfig {
322306 for (column, _) in ( columnDefinitions. filter { $0. options. contains ( . unindexed) } ) {
323307 options. append ( " notindexed " , value: column)
324308 }
325- options. append ( " languageid " , value: languageId)
326- options. append ( " compress " , value: compressFunction)
327- options. append ( " uncompress " , value: uncompressFunction)
328- options. append ( " matchinfo " , value: matchInfo)
329- options. append ( " order " , value: order)
309+ if let languageId = languageId {
310+ options. append ( " languageid " , value: languageId)
311+ }
312+ if let compressFunction = compressFunction {
313+ options. append ( " compress " , value: compressFunction)
314+ }
315+ if let uncompressFunction = uncompressFunction {
316+ options. append ( " uncompress " , value: uncompressFunction)
317+ }
318+ if let matchInfo = matchInfo {
319+ options. append ( " matchinfo " , value: matchInfo. rawValue)
320+ }
321+ if let order = order {
322+ options. append ( " order " , value: order. rawValue)
323+ }
330324 return options
331325 }
332326}
0 commit comments