Update ChatIdentifierWithThreadId.kt

This commit is contained in:
InsanusMokrassar 2022-11-10 09:24:32 +06:00 committed by GitHub
parent 1b8ee5c4d7
commit f2f15d7173
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 6 deletions

View File

@ -1,29 +1,29 @@
package dev.inmo.tgbotapi.utils.extensions
import dev.inmo.tgbotapi.types.ChatIdentifier
import dev.inmo.tgbotapi.types.ChatId
import dev.inmo.tgbotapi.types.MessageThreadId
import kotlinx.serialization.Serializable
import kotlin.Pair
import dev.inmo.tgbotapi.types.message.abstract.Message
sealed interface ChatIdWithThreadId {
val chatId: ChatIdentifier
val chatId: ChatId
val threadId: MessageThreadId?
// Light weight due to absence of any conversations
value class ByMessage(
val sourceMessage: Message
) : ChatIdWithThreadId {
override val chatId: ChatIdentifier
override val chatId: ChatId
get() = sourceMessage.chat.id
override val threadId: MessageThreadId?
get() = sourceMessage.threadIdOrNull
}
@Serializable
value class ByPair(
val pair: Pair<ChatIdentifier, MessageThreadId?>
val pair: Pair<ChatId, MessageThreadId?>
) : ChatIdWithThreadId {
override val chatId: ChatIdentifier
override val chatId: ChatId
get() = pair.first
override val threadId: MessageThreadId?
get() = pair.second
@ -32,7 +32,7 @@ sealed interface ChatIdWithThreadId {
companion {
inline operator fun invoke(message: Message) = ByMessage(message)
inline fun serializable(message: Message) = ByPair(message.chatId.id to message.threadIdOrNull)
inline fun serializable(pair: Pair<ChatIdentifier, MessageThreadId?>) = ByPair(pair)
inline fun serializable(pair: Pair<ChatId, MessageThreadId?>) = ByPair(pair)
}
}