• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017-2021 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  * Encoder that does not do any operations. Its main purpose is to ignore data instead of writing it.
14  */
15 @OptIn(ExperimentalSerializationApi::class)
16 internal object NoOpEncoder : AbstractEncoder() {
17     override val serializersModule: SerializersModule = EmptySerializersModule()
18 
encodeValuenull19     public override fun encodeValue(value: Any): Unit = Unit
20 
21     override fun encodeNull(): Unit = Unit
22 
23     override fun encodeBoolean(value: Boolean): Unit = Unit
24     override fun encodeByte(value: Byte): Unit = Unit
25     override fun encodeShort(value: Short): Unit = Unit
26     override fun encodeInt(value: Int): Unit = Unit
27     override fun encodeLong(value: Long): Unit = Unit
28     override fun encodeFloat(value: Float): Unit = Unit
29     override fun encodeDouble(value: Double): Unit = Unit
30     override fun encodeChar(value: Char): Unit = Unit
31     override fun encodeString(value: String): Unit = Unit
32     override fun encodeEnum(enumDescriptor: SerialDescriptor, index: Int): Unit = Unit
33 }
34