|
| 1 | +/* |
| 2 | + * Copyright 2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. |
| 3 | + */ |
| 4 | + |
| 5 | +package kotlinx.serialization.internal |
| 6 | + |
| 7 | +import kotlinx.serialization.* |
| 8 | +import kotlinx.serialization.descriptors.* |
| 9 | +import kotlinx.serialization.encoding.* |
| 10 | +import kotlinx.serialization.modules.* |
| 11 | + |
| 12 | +/** |
| 13 | + * The purpose of this decoder is to check whether its methods were called currectly, |
| 14 | + * rather than implement any concrete format. |
| 15 | + */ |
| 16 | +class DummySequentialDecoder( |
| 17 | + override val serializersModule: SerializersModule = EmptySerializersModule() |
| 18 | +) : Decoder, CompositeDecoder { |
| 19 | + private fun notImplemented(): Nothing = throw Error("Implement this method if needed") |
| 20 | + |
| 21 | + override fun decodeSequentially(): Boolean = true |
| 22 | + override fun decodeElementIndex(descriptor: SerialDescriptor): Int = throw Error("This method shouldn't be called in sequential mode") |
| 23 | + |
| 24 | + override fun beginStructure(descriptor: SerialDescriptor): CompositeDecoder = this |
| 25 | + override fun endStructure(descriptor: SerialDescriptor): Unit = Unit |
| 26 | + |
| 27 | + override fun decodeInline(descriptor: SerialDescriptor): Decoder = notImplemented() |
| 28 | + |
| 29 | + override fun decodeBoolean(): Boolean = notImplemented() |
| 30 | + override fun decodeByte(): Byte = notImplemented() |
| 31 | + override fun decodeShort(): Short = notImplemented() |
| 32 | + override fun decodeInt(): Int = notImplemented() |
| 33 | + override fun decodeLong(): Long = notImplemented() |
| 34 | + override fun decodeFloat(): Float = notImplemented() |
| 35 | + override fun decodeDouble(): Double = notImplemented() |
| 36 | + override fun decodeChar(): Char = notImplemented() |
| 37 | + override fun decodeString(): String = notImplemented() |
| 38 | + override fun decodeEnum(enumDescriptor: SerialDescriptor): Int = notImplemented() |
| 39 | + |
| 40 | + override fun decodeNotNullMark(): Boolean = notImplemented() |
| 41 | + override fun decodeNull(): Nothing? = notImplemented() |
| 42 | + |
| 43 | + override fun decodeBooleanElement(descriptor: SerialDescriptor, index: Int): Boolean = notImplemented() |
| 44 | + override fun decodeByteElement(descriptor: SerialDescriptor, index: Int): Byte = notImplemented() |
| 45 | + override fun decodeShortElement(descriptor: SerialDescriptor, index: Int): Short = notImplemented() |
| 46 | + override fun decodeIntElement(descriptor: SerialDescriptor, index: Int): Int = notImplemented() |
| 47 | + override fun decodeLongElement(descriptor: SerialDescriptor, index: Int): Long = notImplemented() |
| 48 | + override fun decodeFloatElement(descriptor: SerialDescriptor, index: Int): Float = notImplemented() |
| 49 | + override fun decodeDoubleElement(descriptor: SerialDescriptor, index: Int): Double = notImplemented() |
| 50 | + override fun decodeCharElement(descriptor: SerialDescriptor, index: Int): Char = notImplemented() |
| 51 | + override fun decodeStringElement(descriptor: SerialDescriptor, index: Int): String = notImplemented() |
| 52 | + |
| 53 | + override fun decodeInlineElement(descriptor: SerialDescriptor, index: Int): Decoder = notImplemented() |
| 54 | + override fun <T : Any?> decodeSerializableElement(descriptor: SerialDescriptor, index: Int, deserializer: DeserializationStrategy<T>, previousValue: T?): T = notImplemented() |
| 55 | + override fun <T : Any> decodeNullableSerializableElement(descriptor: SerialDescriptor, index: Int, deserializer: DeserializationStrategy<T?>, previousValue: T?): T? = notImplemented() |
| 56 | +} |
0 commit comments