Я хочу создать функцию, которая принимает параметр типа протокола и убедиться, что этот тип протокола также соответствует другому типу протокола.Есть ли способ, которым я могу сделать это?Или я должен фундаментально переосмыслить свой подход здесь?
Пример:
// This doesn't extend CaseIterable itself because I would like to use it as a concrete type and not just a generic constraint
protocol MyProtocol {
/*some protocol stuff*/
}
enum myEnum: MyProtocol, CaseIterable {
/*some enum stuff*/
}
func<T: CaseIterable>(_ myEnum: MyProtocol.Type)
where MyProtocol.Type: CaseIterable {
myEnum.allCases // <--- This is what I would like to do
}