@file:Suppress("unused") package dev.inmo.tgbotapi.extensions.utils.updates import dev.inmo.tgbotapi.types.message.abstracts.* import dev.inmo.tgbotapi.types.update.abstracts.BaseSentMessageUpdate import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.mapNotNull /** * Will map incoming [BaseSentMessageUpdate]s to [ContentMessage] from [BaseSentMessageUpdate.data] */ fun Flow.asContentMessagesFlow() = mapNotNull { it.data as? ContentMessage<*> } /** * Will map incoming [BaseSentMessageUpdate]s to [CommonMessage] from [BaseSentMessageUpdate.data] */ fun Flow.asCommonMessagesFlow() = mapNotNull { it.data as? CommonMessage<*> } @Suppress("NOTHING_TO_INLINE") inline fun Flow.chatEvents() = mapNotNull { it.data as? ChatEventMessage<*> } /** * Will map incoming [BaseSentMessageUpdate]s to [UnknownMessageType] from [BaseSentMessageUpdate.data] */ fun Flow.asUnknownMessagesFlow() = mapNotNull { it.data as? UnknownMessageType }