Я пытаюсь создать общее перечисление результатов в swift, вот что у меня есть:
enum Result<T: Codable>: Error {
//Indicates that it was a success, and data is the returned result
case Success(data: T)
//Indicates that there was an unrecognizable error
case Failure(error: Error)
//Some cases for specific status codes
case Forbidden //Status code: 403
case NotAcceptable //Status code: 406
case Conflict //Status code: 409
case InternalServerError //Status code: 500
}
И затем я пытаюсь создать из него Observable, вот так: (TheT указывается в вызове функции, это сокращено для краткости)
Observable<Result<T>>.create { observer in
//Some code to go make an Http requests and return response....
switch response.result {
case .success(let value):
//This works fine
observer.onNext(Result.success(value))
observer.onCompleted()
case .failure(let error):
//This is where things go wrong.
observer.onError(Result.failure(error))
}
}
Проблема в том, что когда я пытаюсь вернуться в случае .failure
, он всегда говорит Argument type 'Result<_>' does not conform to expected type 'Error'
, хотя Result is Errorвведите
Я что-то не так делаю?