Merge pull request #64 from InsanusMokrassar/2.1.1

2.1.1
This commit is contained in:
InsanusMokrassar authored and GitHub committed 2023-06-20 11:44:13 +06:00
commit 9a10c7eb87
3 files changed
+20 -8

No files matched your search

+10
View File
@@ -1,5 +1,15 @@
# Changelog
## 2.1.1
* `asFlowWithoutDelays` and `asTzFlowWithoutDelays` will have nullable `since` parameters with default to `null`
to avoid any inconsistency of `Flow` idiom.
<details>
<summary>About the reason of changes</summary>
Cold flows should not contain some state by default. So, it was not right to save some `DateTime`/`DateTimeTz`
by default. Now it will not use some external state unless developers will set it manually
</details>
## 2.1.0
* Versions
+2 -2
View File
@@ -36,5 +36,5 @@ androidx_work_version=2.8.1
## Common
version=2.1.0
android_code_version=27
version=2.1.1
android_code_version=28
@@ -18,10 +18,11 @@ import kotlinx.coroutines.isActive
* Will emit all the [KronScheduler.next] as soon as possible. In case [KronScheduler.next] return null, flow will
* be completed
*
* @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. If passed null, `flow`
* will always start since the moment of collecting start
*/
fun KronScheduler.asTzFlowWithoutDelays(since: DateTimeTz = DateTime.nowLocal()): Flow<DateTimeTz> = flow {
var previous = since
fun KronScheduler.asTzFlowWithoutDelays(since: DateTimeTz? = null): Flow<DateTimeTz> = flow {
var previous = since ?: DateTime.nowLocal()
while (currentCoroutineContext().isActive) {
val next = next(previous) ?: break
emit(next)
@@ -57,10 +58,11 @@ fun KronScheduler.asTzFlow(): Flow<DateTimeTz> = asTzFlowWithDelays()
* Will emit all the [KronScheduler.next] as soon as possible. In case [KronScheduler.next] return null, flow will
* be completed
*
* @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. If passed null, `flow`
* will always start since the moment of collecting start
*/
fun KronScheduler.asFlowWithoutDelays(since: DateTime = DateTime.now()): Flow<DateTime> = flow {
var previous = since
fun KronScheduler.asFlowWithoutDelays(since: DateTime? = null): Flow<DateTime> = flow {
var previous = since ?: DateTime.now()
while (currentCoroutineContext().isActive) {
val next = next(previous) ?: break
emit(next)