Я пытаюсь использовать дженерики в быстром для интерпретации http ответа.Все ответы Json имеют одинаковую подпись вверху:
{
"request": "foo",
"result": "[{},{}....]
}
Поэтому я использую это:
public struct HttpResponse<DATA: Codable> {
public let request: Bool?
public let result: DATA?
enum CodingKeys: String, CodingKey {
case request= "request"
case result = "result"
} ..
В слое My Network:
final class Network<T: Decodable> {
func getItems(_ path: String) -> Observable<HttpResponse<[T]>> {
let absolutePath = "\(endPoint)/\(path)"
return RxAlamofire
.data(.get, absolutePath)
.debug()
.observeOn(scheduler)
.map({ data -> [T] in
return try JSONDecoder().decode([T].self, from: data)
})
}
Я получаю эту ошибку в Observable<PlutusResponse<[T]>>
Тип Generics 'T' не соответствует протоколу 'Encodable'
Как правильно использовать это?