Возможно ли, чтобы функция была доступна только тогда, когда свойство параметра удовлетворяет определенному условию? Например, используя ключевое слово where? Я привел пример идеи ниже.
struct ASN1 {
enum Types: UInt8 {
case constructed
case primitive
}
class Tag {
let type: Types
}
class Encoder {
func enter(tag: ASN1.Tag) where tag.type == .constructed {
// Function only available when tag property type is .constructed
}
}
}