В Swift вы не можете создать, например, массив [Equatable] или использовать протокол Equatable, как параметр функции. Чтобы обойти это ограничение используется техника Type erasure. В статье разобрано, как создать очередь из дженерик реквестов, используя этот подход.
https://www.swiftbysundell.com/articles/different-flavors-of-type-erasure-in-swift/
Post #58
482