Я ищу способ завершения блока для моего кода kotlin. В Swift у меня есть моя функция:
func fetchRegister(with request: RegisterRequest, completion: @escaping (Result<RegisterResponse,DataResponseError>) -> Void) {
//do some stuff
// if i got error i can use completion(Result.failure(DataResponseError.networking))
}
в котлине мой текущий код:
fun fetchRegister(withRequest: RegisterRequest, callback: (Result<RegisterResponse,DataResponseError>) -> Unit) {
//do some stuff
//cant use callback.onFailure(DataResponseError.networking)
}
Мой интерфейс результатов:
interface Result<T,U: DataResponseError> {
fun onSuccess(data: T)
fun onFailure(Error: U)
}
и моя DataResponseError:
enum class DataResponseError(val errorMessage: String) {
httpBody("An error occured while creating httpBody"),
token("An error occured while getting token"),
networking("An error occured while fetching data"),
decoding("An error occured while decoding data")
}
На данный момент данные не могут быть получены из этой функции, я не могу использовать callback.onfailure или onSuccess с передачей данных. Как я могу это исправить?