networkBoundResource
inline fun <ResultType, RequestType> networkBoundResource(crossinline query: () -> Flow<ResultType>, crossinline fetch: suspend () -> RequestType, crossinline saveFetchResult: suspend (RequestType) -> Unit, crossinline shouldFetch: () -> Boolean = { true }, crossinline dbTransform: (ResultType) -> RequestType): Flow<Resource<Failure, RequestType>>