Coverage Summary for Class: ResultExtensionsKt (com.codandotv.streamplayerapp.core_networking.handleError)

Class Method, % Branch, % Line, % Instruction, %
ResultExtensionsKt 50% (1/2) 0% (0/4) 20% (1/5) 29.6% (8/27)
ResultExtensionsKt$catchFailure$1 0% (0/1) 0% (0/2) 0% (0/3) 0% (0/41)
Total 33.3% (1/3) 0% (0/6) 12.5% (1/8) 11.8% (8/68)


 package com.codandotv.streamplayerapp.core_networking.handleError
 
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.catch
 
 inline fun <T> Result<T>.onError(action: (exception: Failure) -> Unit): Result<T> {
     if(isFailure && exceptionOrNull() is Failure){
         val error = exceptionOrNull() as Failure
         action(error)
     }
     return this
 }
 
 fun <T> Flow<T>.catchFailure(action: suspend kotlinx.coroutines.flow.FlowCollector<T>.(Failure) -> Unit): Flow<T> =
     catch {
         if(it is Failure){
             action(it)
         }else{
             action(Failure.GenericError())
         }
     }