mirror of
https://github.com/InsanusMokrassar/TelegramBotAPI.git
synced 2024-06-14 22:05:28 +00:00
20 lines
674 B
Kotlin
20 lines
674 B
Kotlin
package com.github.insanusmokrassar.TelegramBotAPI.requests.abstracts
|
|
|
|
import com.github.insanusmokrassar.TelegramBotAPI.types.ResponseParameters
|
|
import com.github.insanusmokrassar.TelegramBotAPI.utils.toJsonWithoutNulls
|
|
import kotlinx.serialization.*
|
|
import kotlinx.serialization.json.JsonObject
|
|
|
|
interface Request<T: Any> {
|
|
fun method(): String
|
|
fun resultSerializer(): KSerializer<T>
|
|
@ImplicitReflectionSerializer
|
|
fun json(): JsonObject = toJsonWithoutNulls()
|
|
}
|
|
|
|
fun <T : Any> StringFormat.extractResult(
|
|
from: String,
|
|
dataSerializer: KSerializer<T>
|
|
): ResponseParameters<T> {
|
|
return parse(ResponseParameters.serializer(dataSerializer), from)
|
|
} |