temporal result
This commit is contained in:
@@ -15,6 +15,7 @@ kotlin {
|
||||
api "io.insert-koin:koin-core:$koin_version"
|
||||
api "com.benasher44:uuid:$uuid_version"
|
||||
api "com.soywiz.korlibs.klock:klock:$klock_version"
|
||||
api "io.ktor:ktor-http:$ktor_version"
|
||||
}
|
||||
}
|
||||
jvmMain {
|
||||
|
@@ -0,0 +1,30 @@
|
||||
package dev.inmo.postssystem.features.common.common
|
||||
|
||||
import dev.inmo.micro_utils.common.ByteArrayAllocatorSerializer
|
||||
import io.ktor.utils.io.core.*
|
||||
import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
typealias SimpleInputProvider = () -> Input
|
||||
|
||||
object SimpleInputProviderSerializer : KSerializer<SimpleInputProvider> {
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = ByteArrayAllocatorSerializer.descriptor
|
||||
override fun deserialize(decoder: Decoder): SimpleInputProvider {
|
||||
val allocator = ByteArrayAllocatorSerializer.deserialize(decoder)
|
||||
return {
|
||||
ByteReadPacket(allocator.invoke())
|
||||
}
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: SimpleInputProvider) {
|
||||
ByteArrayAllocatorSerializer.serialize(
|
||||
encoder
|
||||
) {
|
||||
value().readBytes()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user