[swift-evolution] Feedback on SE-0166 and SE-0167
    Gwendal Roué 
    gwendal.roue at gmail.com
       
    Sat May 27 05:40:12 CDT 2017
    
    
  
> Le 27 mai 2017 à 11:59, David Hart <david at hartbit.com> a écrit :
> 
> I didn’t know that was possible either! Really cool. Even better:
> 
>  if let databaseValueType = T.self as? DatabaseValueConvertible.Type {
>      let databaseValue: DatabaseValue = row.value(named: key.stringValue)
>      return databaseValueType.fromDatabaseValue(databaseValue) as! T
>  } else { … }
Yes, that's even more clear like that :-)
And for Encodable support, it works just great (not a single line of boilerplate code):
    private enum Color: String, DatabaseValueConvertible, Encodable {
        case red, green, blue
    }
    
    private struct EncodableStruct : Persistable, Encodable {
        static let databaseTableName = "myTable"
        let name: String
        let color: Color?
    }
    
    try dbQueue.inDatabase { db in
        try EncodableStruct(name: "Arthur", color: .red).insert(db)
    }
Gwendal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170527/7b570303/attachment.html>
    
    
More information about the swift-evolution
mailing list