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())
}
}