169 похожих чатов

Костылииии. Дело в том что при вызове метода edit* в

тг бот апи тебе возвращается либо True либо обьект Message («On success, if the edited message was sent by the bot, the edited Message is returned, otherwise True is returned»), хотел в котлине это замапить как Message?.

В попытках это сделать написал такой костыль:

override fun deserialize(decoder: Decoder): MyData? {

val input = decoder as? JsonInput ?: throw SerializationException("This class can be loaded only by Json")
val t1 = input.decodeJson()
val t2 = (t1 as? JsonLiteral)?.primitive?.boolean

if(t2 != null && t2) return null

return MyData.serializer().deserialize(decoder)
}

Но он не работает т.к. внутри MyData.serializer().deserialize() юзается 2-й раз .decode().

Но сейчас я понял что такой костыль не нужен, т.к. можно сделать 2 перегрузки:
1) для редактирования сообщений бота (возвращает Message)
2) для редактирования inline сообщений (возвращает Unit)

2 ответов

7 просмотров

Я, кстати, этот вопрос вообще ещё не решил

а вот тут можно из JsonObject напрямую получить MyData

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
19
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта