forked from Kotlin/kotlinx.serialization
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PackedArrayEncoder.kt
31 lines (25 loc) · 1.13 KB
/
PackedArrayEncoder.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package kotlinx.serialization.protobuf.internal
import kotlinx.serialization.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.*
import kotlinx.serialization.protobuf.*
@OptIn(ExperimentalSerializationApi::class)
internal class PackedArrayEncoder(
proto: ProtoBuf,
writer: ProtobufWriter,
curTag: ProtoDesc,
descriptor: SerialDescriptor,
stream: ByteArrayOutput = ByteArrayOutput()
) : NestedRepeatedEncoder(proto, writer, curTag, descriptor, stream) {
// Triggers not writing header
override fun SerialDescriptor.getTag(index: Int): ProtoDesc = MISSING_TAG
override fun beginCollection(descriptor: SerialDescriptor, collectionSize: Int): CompositeEncoder {
throw SerializationException("Packing only supports primitive number types")
}
override fun beginStructure(descriptor: SerialDescriptor): CompositeEncoder {
throw SerializationException("Packing only supports primitive number types")
}
override fun encodeTaggedString(tag: ProtoDesc, value: String) {
throw SerializationException("Packing only supports primitive number types")
}
}