package dev.inmo.tgbotapi.extensions.utils.updates import dev.inmo.tgbotapi.types.update.abstracts.* import dev.inmo.tgbotapi.types.update.media_group.* import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.filterIsInstance fun Flow.onlyBaseMessageUpdates(): Flow = filterIsInstance() /** * Converts flow to [Flow] of [BaseSentMessageUpdate] */ fun Flow.onlySentMessageUpdates(): Flow = filterIsInstance() /** * Converts flow to [Flow] of [BaseSentMessageUpdate] */ fun Flow.onlyEditMessageUpdates(): Flow = filterIsInstance() /** * Converts flow to [Flow] of [MediaGroupUpdate]. Please, remember that it could be either [EditMediaGroupUpdate] * or [SentMediaGroupUpdate] * * @see onlySentMediaGroupUpdates * @see onlyEditMediaGroupUpdates */ fun Flow.onlyMediaGroupsUpdates(): Flow = filterIsInstance() /** * Converts flow to [Flow] of [SentMediaGroupUpdate] */ fun Flow.onlySentMediaGroupUpdates(): Flow = filterIsInstance() /** * Converts flow to [Flow] of [EditMediaGroupUpdate] */ fun Flow.onlyEditMediaGroupUpdates(): Flow = filterIsInstance()