remove redundant FlowPrevies on flows API

This commit is contained in:
InsanusMokrassar 2023-03-18 12:34:06 +06:00
parent 890ab5b15d
commit ede47ae664

View File

@ -3,8 +3,8 @@ package dev.inmo.krontab.utils
import com.soywiz.klock.DateTime import com.soywiz.klock.DateTime
import com.soywiz.klock.DateTimeTz import com.soywiz.klock.DateTimeTz
import com.soywiz.klock.milliseconds import com.soywiz.klock.milliseconds
import dev.inmo.krontab.* import dev.inmo.krontab.KronScheduler
import kotlinx.coroutines.FlowPreview import dev.inmo.krontab.next
import kotlinx.coroutines.currentCoroutineContext import kotlinx.coroutines.currentCoroutineContext
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -20,7 +20,6 @@ import kotlinx.coroutines.isActive
* *
* @param since Will be used as the first parameter for [KronScheduler.next] fun * @param since Will be used as the first parameter for [KronScheduler.next] fun
*/ */
@FlowPreview
fun KronScheduler.asTzFlowWithoutDelays(since: DateTimeTz = DateTime.nowLocal()): Flow<DateTimeTz> = flow { fun KronScheduler.asTzFlowWithoutDelays(since: DateTimeTz = DateTime.nowLocal()): Flow<DateTimeTz> = flow {
var previous = since var previous = since
while (currentCoroutineContext().isActive) { while (currentCoroutineContext().isActive) {
@ -35,7 +34,6 @@ fun KronScheduler.asTzFlowWithoutDelays(since: DateTimeTz = DateTime.nowLocal())
* *
* This [Flow] will use [asTzFlowWithoutDelays], but stop on each time until this time will happen * This [Flow] will use [asTzFlowWithoutDelays], but stop on each time until this time will happen
*/ */
@FlowPreview
fun KronScheduler.asTzFlowWithDelays(): Flow<DateTimeTz> = asTzFlowWithoutDelays().onEach { futureHappenTime -> fun KronScheduler.asTzFlowWithDelays(): Flow<DateTimeTz> = asTzFlowWithoutDelays().onEach { futureHappenTime ->
val now = DateTime.nowLocal() val now = DateTime.nowLocal()
@ -51,7 +49,6 @@ fun KronScheduler.asTzFlowWithDelays(): Flow<DateTimeTz> = asTzFlowWithoutDelays
"Behaviour will be changed. In some of near versions this flow will not delay executions", "Behaviour will be changed. In some of near versions this flow will not delay executions",
ReplaceWith("this.asTzFlowWithDelays()", "dev.inmo.krontab.utils.asTzFlowWithDelays") ReplaceWith("this.asTzFlowWithDelays()", "dev.inmo.krontab.utils.asTzFlowWithDelays")
) )
@FlowPreview
fun KronScheduler.asTzFlow(): Flow<DateTimeTz> = asTzFlowWithDelays() fun KronScheduler.asTzFlow(): Flow<DateTimeTz> = asTzFlowWithDelays()
/** /**
@ -62,7 +59,6 @@ fun KronScheduler.asTzFlow(): Flow<DateTimeTz> = asTzFlowWithDelays()
* *
* @param since Will be used as the first parameter for [KronScheduler.next] fun * @param since Will be used as the first parameter for [KronScheduler.next] fun
*/ */
@FlowPreview
fun KronScheduler.asFlowWithoutDelays(since: DateTime = DateTime.now()): Flow<DateTime> = flow { fun KronScheduler.asFlowWithoutDelays(since: DateTime = DateTime.now()): Flow<DateTime> = flow {
var previous = since var previous = since
while (currentCoroutineContext().isActive) { while (currentCoroutineContext().isActive) {
@ -77,7 +73,6 @@ fun KronScheduler.asFlowWithoutDelays(since: DateTime = DateTime.now()): Flow<Da
* *
* This [Flow] will use [asFlowWithoutDelays], but stop on each time until this time will happen * This [Flow] will use [asFlowWithoutDelays], but stop on each time until this time will happen
*/ */
@FlowPreview
fun KronScheduler.asFlowWithDelays(): Flow<DateTime> = asFlowWithoutDelays().onEach { futureHappenTime -> fun KronScheduler.asFlowWithDelays(): Flow<DateTime> = asFlowWithoutDelays().onEach { futureHappenTime ->
val now = DateTime.now() val now = DateTime.now()
@ -93,5 +88,4 @@ fun KronScheduler.asFlowWithDelays(): Flow<DateTime> = asFlowWithoutDelays().onE
"Behaviour will be changed. In some of near versions this flow will not delay executions", "Behaviour will be changed. In some of near versions this flow will not delay executions",
ReplaceWith("this.asFlowWithDelays()", "dev.inmo.krontab.utils.asFlowWithDelays") ReplaceWith("this.asFlowWithDelays()", "dev.inmo.krontab.utils.asFlowWithDelays")
) )
@FlowPreview
fun KronScheduler.asFlow(): Flow<DateTime> = asFlowWithDelays() fun KronScheduler.asFlow(): Flow<DateTime> = asFlowWithDelays()