Skip to content

Commit 8276656

Browse files
committed
refactor: split internal package
1 parent f426a8c commit 8276656

22 files changed

+117
-77
lines changed

api/kotlinx-serialization-bencoding.api

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,6 @@ public abstract interface class space/iseki/bencoding/BencodeOptions {
106106
public abstract fun getFloatStrategy ()Lspace/iseki/bencoding/FloatNumberStrategy;
107107
}
108108

109-
public final class space/iseki/bencoding/BencodingJVM {
110-
public static final fun decodeFromStream (Lspace/iseki/bencoding/Bencode;Ljava/io/InputStream;Lkotlinx/serialization/KSerializer;)Ljava/lang/Object;
111-
}
112-
113109
public abstract interface annotation class space/iseki/bencoding/BinaryString : java/lang/annotation/Annotation {
114110
public abstract fun strategy ()Lspace/iseki/bencoding/BinaryStringStrategy;
115111
}
@@ -139,3 +135,7 @@ public final class space/iseki/bencoding/FloatNumberStrategy : java/lang/Enum {
139135
public static fun values ()[Lspace/iseki/bencoding/FloatNumberStrategy;
140136
}
141137

138+
public final class space/iseki/bencoding/internal/BencodingJVM {
139+
public static final fun decodeFromStream (Lspace/iseki/bencoding/Bencode;Ljava/io/InputStream;Lkotlinx/serialization/KSerializer;)Ljava/lang/Object;
140+
}
141+

src/commonMain/kotlin/space/iseki/bencoding/Bencode.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ import kotlinx.serialization.DeserializationStrategy
77
import kotlinx.serialization.SerializationStrategy
88
import kotlinx.serialization.modules.EmptySerializersModule
99
import kotlinx.serialization.modules.SerializersModule
10+
import space.iseki.bencoding.internal.BencodeDecoder0
11+
import space.iseki.bencoding.internal.BencodeEncoder0
12+
import space.iseki.bencoding.internal.BencodeOptionsData
13+
import space.iseki.bencoding.internal.BytesLexer
14+
import space.iseki.bencoding.internal.createBytesWriter
1015

1116
interface Bencode : BinaryFormat {
1217
val options: BencodeOptions
Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package space.iseki.bencoding
22

3-
import kotlinx.serialization.ExperimentalSerializationApi
4-
import kotlinx.serialization.SerializationStrategy
5-
import kotlinx.serialization.descriptors.SerialDescriptor
63
import kotlinx.serialization.encoding.Encoder
7-
import kotlinx.serialization.modules.SerializersModule
84

95
interface BencodeEncoder : Encoder {
106
val options: BencodeOptions
@@ -13,51 +9,3 @@ interface BencodeEncoder : Encoder {
139
fun reportError(message: String): Nothing = throw BencodeEncodeException(message)
1410
}
1511

16-
internal interface EncoderDelegate : BencodeEncoder {
17-
val rootRef: BencodeEncoder
18-
override val serializersModule: SerializersModule
19-
get() = rootRef.serializersModule
20-
override val options: BencodeOptions
21-
get() = rootRef.options
22-
override fun encodeChar(value: Char) = encodeLong(value.code.toLong())
23-
override fun encodeByte(value: Byte) = encodeLong(value.toLong())
24-
override fun encodeShort(value: Short) = encodeLong(value.toLong())
25-
override fun encodeInt(value: Int) = encodeLong(value.toLong())
26-
override fun encodeFloat(value: Float) = options.floatStrategy.encodeFloat(value)
27-
override fun encodeDouble(value: Double) = options.doubleStrategy.encodeDouble(value)
28-
override fun encodeBoolean(value: Boolean) = reportError("boolean is not supported")
29-
30-
@OptIn(ExperimentalSerializationApi::class)
31-
override fun encodeEnum(enumDescriptor: SerialDescriptor, index: Int) {
32-
encodeString(enumDescriptor.getElementName(index))
33-
}
34-
35-
override fun encodeBinaryString(strategy: BinaryStringStrategy, value: String) {
36-
options.binaryStringStrategy.encodeString(strategy, value)
37-
}
38-
39-
@ExperimentalSerializationApi
40-
override fun encodeNull() {
41-
reportError("null is not supported")
42-
}
43-
44-
override fun encodeInline(descriptor: SerialDescriptor): Encoder = this
45-
46-
override fun <T> encodeSerializableValue(serializer: SerializationStrategy<T>, value: T) {
47-
encodeValue(EncodeValue.Serialized(value, serializer))
48-
}
49-
50-
override fun encodeByteArray(bytes: ByteArray) {
51-
encodeValue(EncodeValue.Bytes(bytes))
52-
}
53-
54-
override fun encodeString(value: String) {
55-
encodeValue(EncodeValue.Text(value))
56-
}
57-
58-
override fun encodeLong(value: Long) {
59-
encodeValue(EncodeValue.Number(value))
60-
}
61-
62-
fun encodeValue(value: EncodeValue)
63-
}

src/commonMain/kotlin/space/iseki/bencoding/BencodeOptions.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,3 @@ interface BencodeOptions {
66
val binaryStringStrategy: BinaryStringStrategy
77
}
88

9-
internal data class BencodeOptionsData(
10-
override val floatStrategy: FloatNumberStrategy,
11-
override val doubleStrategy: FloatNumberStrategy,
12-
override val binaryStringStrategy: BinaryStringStrategy,
13-
) : BencodeOptions
14-

src/commonMain/kotlin/space/iseki/bencoding/BinaryStringStrategy.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package space.iseki.bencoding
22

33
import kotlinx.serialization.descriptors.SerialDescriptor
4+
import space.iseki.bencoding.internal.bytes2StringIso88591
5+
import space.iseki.bencoding.internal.string2BytesIso88591
46
import kotlin.io.encoding.ExperimentalEncodingApi
57

68
/**

src/commonMain/kotlin/space/iseki/bencoding/BWriter.kt renamed to src/commonMain/kotlin/space/iseki/bencoding/internal/BWriter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package space.iseki.bencoding
1+
package space.iseki.bencoding.internal
22

33
internal interface BWriter {
44
fun writeData(b: Int)

src/commonMain/kotlin/space/iseki/bencoding/BencodeDecoder0.kt renamed to src/commonMain/kotlin/space/iseki/bencoding/internal/BencodeDecoder0.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package space.iseki.bencoding
1+
package space.iseki.bencoding.internal
22

33
import kotlinx.serialization.DeserializationStrategy
44
import kotlinx.serialization.ExperimentalSerializationApi
@@ -7,6 +7,11 @@ import kotlinx.serialization.descriptors.StructureKind
77
import kotlinx.serialization.encoding.CompositeDecoder
88
import kotlinx.serialization.encoding.Decoder
99
import kotlinx.serialization.modules.SerializersModule
10+
import space.iseki.bencoding.BencodeCompositeDecoder
11+
import space.iseki.bencoding.BencodeDecodeException
12+
import space.iseki.bencoding.BencodeDecoder
13+
import space.iseki.bencoding.BencodeOptions
14+
import space.iseki.bencoding.BinaryStringStrategy
1015

1116
@OptIn(ExperimentalSerializationApi::class)
1217
internal class BencodeDecoder0(

src/commonMain/kotlin/space/iseki/bencoding/BencodeEncoder0.kt renamed to src/commonMain/kotlin/space/iseki/bencoding/internal/BencodeEncoder0.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
package space.iseki.bencoding
1+
package space.iseki.bencoding.internal
22

33
import kotlinx.serialization.ExperimentalSerializationApi
44
import kotlinx.serialization.descriptors.PrimitiveKind
55
import kotlinx.serialization.descriptors.SerialDescriptor
66
import kotlinx.serialization.descriptors.StructureKind
77
import kotlinx.serialization.encoding.CompositeEncoder
88
import kotlinx.serialization.modules.SerializersModule
9+
import space.iseki.bencoding.BencodeEncoder
10+
import space.iseki.bencoding.BencodeOptions
911

1012
@OptIn(ExperimentalSerializationApi::class)
1113
internal class BencodeEncoder0(
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package space.iseki.bencoding.internal
2+
3+
import space.iseki.bencoding.BencodeOptions
4+
import space.iseki.bencoding.BinaryStringStrategy
5+
import space.iseki.bencoding.FloatNumberStrategy
6+
7+
internal data class BencodeOptionsData(
8+
override val floatStrategy: FloatNumberStrategy,
9+
override val doubleStrategy: FloatNumberStrategy,
10+
override val binaryStringStrategy: BinaryStringStrategy,
11+
) : BencodeOptions

src/commonMain/kotlin/space/iseki/bencoding/BytesLexer.kt renamed to src/commonMain/kotlin/space/iseki/bencoding/internal/BytesLexer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package space.iseki.bencoding
1+
package space.iseki.bencoding.internal
22

33

44
internal class BytesLexer(private val bytes: ByteArray) : CommonLexer() {

0 commit comments

Comments
 (0)