Как ограничить протокол только значениями типов?

Аналогично по духу этот вопрос, за исключением того, что вместо того, чтобы ограничивать протокол только классами, я хочу иметь возможность определять протокол, который может быть принят только перечисления, структуры и т.д. Возможно ли это?

Ответ 1

Я не мог найти ответ, но, играя, я пришел к выводу, что вы не можете. Чтобы ограничить протокол только классами, перед ним следует class, например

protocol SomeProto: class {
    func structYourStuff() -> Void
}

Сделав предположение, что это будет согласовано между другими типами, я попытался

protocol SomeProto: struct {
    func structYourStuff() -> Void
}

Но Xcode дал мне пять разных ошибок на одной строке, что привело меня к выводу, что вы не можете. Я мог быть совершенно не прав, хотя я только начал изучать Свифта около недели назад.