MREnumCodable

MREnumCodable almost works like typical Codable protocol, but if you recieve an unknown value it automatically assign it as unknown without throwing error.

enum ErrorCode: String, EnumCodable {
    case invalidData = "invalid_data"
    case connectionLost = "connection_lost"
    case unknown

    static var unknownValue: ErrorCode { .unknown }

}