У меня следующий простой протокол:
protocol JSONParser {
associatedtype JSONResult
func parse<T: Codable>(response: Response, type: T) -> JSONResult
}
Функция parse
принимает простое Response
, что является структурой, и T
, что составляет Codable
. И вот как я реализую этот протокол:
struct AuthJSONParser: JSONParser {
func parse<T: Codable>(response: Response, type: T) -> AuthResult<T> {
}
}
Кажется, все в порядке. Но Xcode говорит, что он не соответствует протоколу. Вот AuthResult<T>
на всякий случай:
enum AuthResult<Model: Codable> {
case success(data: Model)
case failed(msg: String)
}
Я не могу понять, что не так с моей реализацией. Я хочу использовать обобщенные c функции вместо обобщенных c структур.