如何使用枚举值作为 GRDB 记录中的列?

How to use enum values as columns in a GRDB Record?

我想记录4种不同的类型。我有以下代码

import GRDB

enum RecordType: Int16 {
    case video, image, text, rep
}
extension RecordType: DatabaseValueConvertible {}

struct Record: Codable, FetchableRecord, PersistableRecord {
    var id: Int64?
    var type: RecordType
}

现在它抱怨Type 'Record' does not conform to protocol 'Decodable'

当然,当我从结构中删除类型时,投诉就消失了。由于类型在技术上是 Int16 为什么这会使其不可解码?

当我也将 Codable 应用于 RecordType 时,这种情况就消失了。找到答案here

extension RecordType: DatabaseValueConvertible, Codable {}