[swift-evolution] Feedback on SE-0166 and SE-0167
David Hart
david at hartbit.com
Sat May 27 07:33:49 CDT 2017
> On 27 May 2017, at 12:40, Gwendal Roué <gwendal.roue at gmail.com> wrote:
>
>
>> Le 27 mai 2017 à 11:59, David Hart <david at hartbit.com <mailto: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
>
As a user of GRDB: 😍
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170527/2d988906/attachment.html>
More information about the swift-evolution
mailing list