From 7d35114b5de479c29088c1ae897887e4f0f86a5c Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Sun, 8 Aug 2021 16:43:49 +0600 Subject: [PATCH] classcasts fill for WithOptionalLanguageCode --- CHANGELOG.md | 1 + .../inmo/tgbotapi/requests/bot/BotCommand.kt | 2 +- .../kotlin/dev/inmo/tgbotapi/types/User.kt | 2 +- .../abstracts}/WithLanguageCode.kt | 2 +- .../dev/inmo/tgbotapi/types/UserLocale.kt | 2 +- .../tgbotapi/extensions/utils/ClassCasts.kt | 20 +++++++++++++++++++ 6 files changed, 25 insertions(+), 4 deletions(-) rename tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/{CommonAbstracts => types/abstracts}/WithLanguageCode.kt (90%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16ea4e1f91..5ffc4c5e57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ default `CoroutineScope` * New typealias `SimpleFilter` for unifying triggers filter signatures * All waiters got real filters (`SimpleFilter`) and rename old filters as mappers + * New extensions for `Any`: `as`/`when`/`require` for `WithOptionalLanguageCode` and `WithLanguageCode` ## 0.35.2 diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/bot/BotCommand.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/bot/BotCommand.kt index e5fb89c6c3..a326ed70af 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/bot/BotCommand.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/requests/bot/BotCommand.kt @@ -1,6 +1,6 @@ package dev.inmo.tgbotapi.requests.bot -import dev.inmo.tgbotapi.CommonAbstracts.WithOptionalLanguageCode +import dev.inmo.tgbotapi.types.abstracts.WithOptionalLanguageCode import dev.inmo.tgbotapi.requests.abstracts.SimpleRequest import dev.inmo.tgbotapi.types.commands.BotCommandScope diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/User.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/User.kt index b8774ea67c..1ee03ce417 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/User.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/User.kt @@ -2,7 +2,7 @@ package dev.inmo.tgbotapi.types import dev.inmo.micro_utils.language_codes.IetfLanguageCode import dev.inmo.micro_utils.language_codes.IetfLanguageCodeSerializer -import dev.inmo.tgbotapi.CommonAbstracts.WithOptionalLanguageCode +import dev.inmo.tgbotapi.types.abstracts.WithOptionalLanguageCode import dev.inmo.tgbotapi.types.chat.abstracts.PrivateChat import dev.inmo.tgbotapi.types.chat.extended.ExtendedPrivateChatImpl import dev.inmo.tgbotapi.utils.* diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/CommonAbstracts/WithLanguageCode.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/abstracts/WithLanguageCode.kt similarity index 90% rename from tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/CommonAbstracts/WithLanguageCode.kt rename to tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/abstracts/WithLanguageCode.kt index d59d9c9cce..69ca09b516 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/CommonAbstracts/WithLanguageCode.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/abstracts/WithLanguageCode.kt @@ -1,4 +1,4 @@ -package dev.inmo.tgbotapi.CommonAbstracts +package dev.inmo.tgbotapi.types.abstracts import dev.inmo.micro_utils.language_codes.IetfLanguageCode diff --git a/tgbotapi.core/src/jvmMain/kotlin/dev/inmo/tgbotapi/types/UserLocale.kt b/tgbotapi.core/src/jvmMain/kotlin/dev/inmo/tgbotapi/types/UserLocale.kt index d2e9da4d08..470bdc6399 100644 --- a/tgbotapi.core/src/jvmMain/kotlin/dev/inmo/tgbotapi/types/UserLocale.kt +++ b/tgbotapi.core/src/jvmMain/kotlin/dev/inmo/tgbotapi/types/UserLocale.kt @@ -1,7 +1,7 @@ package dev.inmo.tgbotapi.types import dev.inmo.micro_utils.language_codes.IetfLanguageCode -import dev.inmo.tgbotapi.CommonAbstracts.WithLanguageCode +import dev.inmo.tgbotapi.types.abstracts.WithLanguageCode import java.util.* fun IetfLanguageCode?.javaLocale() = this ?.code ?.let { Locale.forLanguageTag(it) } diff --git a/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt b/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt index b8901c90e6..c276e6bc05 100644 --- a/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt +++ b/tgbotapi.extensions.utils/src/commonMain/kotlin/dev/inmo/tgbotapi/extensions/utils/ClassCasts.kt @@ -23,6 +23,8 @@ import dev.inmo.tgbotapi.types.InlineQueries.InputMessageContent.* import dev.inmo.tgbotapi.types.InlineQueries.query.* import dev.inmo.tgbotapi.types.InputMedia.* import dev.inmo.tgbotapi.types.MessageEntity.textsources.* +import dev.inmo.tgbotapi.types.abstracts.WithLanguageCode +import dev.inmo.tgbotapi.types.abstracts.WithOptionalLanguageCode import dev.inmo.tgbotapi.types.actions.* import dev.inmo.tgbotapi.types.buttons.* import dev.inmo.tgbotapi.types.buttons.InlineKeyboardButtons.* @@ -3106,3 +3108,21 @@ inline fun Any.asFromUser(): FromUser? = this as? FromUser @PreviewFeature inline fun Any.requireFromUser(): FromUser = this as FromUser + +@PreviewFeature +inline fun Any.whenWithOptionalLanguageCode(block: (WithOptionalLanguageCode) -> T) = asWithOptionalLanguageCode() ?.let(block) + +@PreviewFeature +inline fun Any.asWithOptionalLanguageCode(): WithOptionalLanguageCode? = this as? WithOptionalLanguageCode + +@PreviewFeature +inline fun Any.requireWithOptionalLanguageCode(): WithOptionalLanguageCode = this as WithOptionalLanguageCode + +@PreviewFeature +inline fun Any.whenWithLanguageCode(block: (WithLanguageCode) -> T) = asWithLanguageCode() ?.let(block) + +@PreviewFeature +inline fun Any.asWithLanguageCode(): WithLanguageCode? = this as? WithLanguageCode + +@PreviewFeature +inline fun Any.requireWithLanguageCode(): WithLanguageCode = this as WithLanguageCode