mirror of
https://github.com/InsanusMokrassar/krontab.git
synced 2024-11-22 16:23:55 +00:00
fix of #30
This commit is contained in:
parent
28d5665a14
commit
4fab7a28ff
@ -7,6 +7,7 @@
|
||||
* `Klock`: `2.7.0`
|
||||
* Deprecate `do*Local` due to their redundancy (use `do*` instead)
|
||||
* Add support of milliseconds as optional parameter after month (fix of [#31](https://github.com/InsanusMokrassar/krontab/issues/31))
|
||||
* Add support of filters for `Flow`s with `DateTime` (fix of [#30](https://github.com/InsanusMokrassar/krontab/issues/30))
|
||||
|
||||
## 0.7.1
|
||||
|
||||
|
@ -0,0 +1,34 @@
|
||||
package dev.inmo.krontab.utils.flows
|
||||
|
||||
import com.soywiz.klock.*
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.filter
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterSeconds(vararg seconds: Int) = filter { it.seconds in seconds }
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterMinutes(vararg minutes: Int) = filter { it.minutes in minutes }
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterHours(vararg hours: Int) = filter { it.hours in hours }
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterDaysOfMonths(vararg daysOfMonths: Int) = filter { it.dayOfMonth in daysOfMonths }
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterMonths(vararg months: Month) = filter { it.month in months }
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterMonths0(vararg months: Int) = filter { it.month0 in months }
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterMonths1(vararg months: Int) = filter { it.month1 in months }
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterYears(year: Year) = filter { it.year == year }
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterYears(vararg years: Int) = filter { it.yearInt in years }
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterWeekDays(vararg weekDays: DayOfWeek) = filter { it.dayOfWeek in weekDays }
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.filterWeekDays(vararg weekDays: Int) = filter { it.dayOfWeekInt in weekDays }
|
25
src/commonMain/kotlin/dev/inmo/krontab/utils/flows/When.kt
Normal file
25
src/commonMain/kotlin/dev/inmo/krontab/utils/flows/When.kt
Normal file
@ -0,0 +1,25 @@
|
||||
package dev.inmo.krontab.utils.flows
|
||||
|
||||
import com.soywiz.klock.*
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.onlyStartsOfMinutes() = filterSeconds(0)
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.onlyStartsOfHours() = filterMinutes(0).onlyStartsOfMinutes()
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.onlyStartsOfDays() = filterHours(0).onlyStartsOfHours()
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.onlyStartsOfMondays() = filterWeekDays(DayOfWeek.Monday).onlyStartsOfDays()
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.onlyStartsOfSundays() = filterWeekDays(DayOfWeek.Sunday).onlyStartsOfDays()
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.onlyStartsOfMonths() = filterDaysOfMonths(1).onlyStartsOfDays()
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun Flow<DateTime>.onlyStartsOfYears() = filterMonths(Month.January).onlyStartsOfMonths()
|
Loading…
Reference in New Issue
Block a user