> Le 27 mai 2017 à 11:59, David Hart <[email protected]> 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
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution