Skip to content

Commit dd3f9cc

Browse files
committed
fix(jvm): Bencode.* should be placed in main package
1 parent aa135a9 commit dd3f9cc

File tree

3 files changed

+61
-5
lines changed

3 files changed

+61
-5
lines changed

api/kotlinx-serialization-bencoding.api

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ 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+
public static final fun encodeToStream (Lspace/iseki/bencoding/Bencode;Ljava/lang/Object;Lkotlinx/serialization/KSerializer;Ljava/io/OutputStream;)V
112+
}
113+
109114
public abstract interface annotation class space/iseki/bencoding/BinaryString : java/lang/annotation/Annotation {
110115
public abstract fun strategy ()Lspace/iseki/bencoding/BinaryStringStrategy;
111116
}
@@ -137,7 +142,7 @@ public final class space/iseki/bencoding/FloatNumberStrategy : java/lang/Enum {
137142
}
138143

139144
public final class space/iseki/bencoding/internal/BencodingJVM {
140-
public static final fun decodeFromStream (Lspace/iseki/bencoding/Bencode;Ljava/io/InputStream;Lkotlinx/serialization/KSerializer;)Ljava/lang/Object;
141-
public static final fun encodeToStream (Lspace/iseki/bencoding/Bencode;Ljava/lang/Object;Lkotlinx/serialization/KSerializer;Ljava/io/OutputStream;)V
145+
public static final synthetic fun decodeFromStream (Lspace/iseki/bencoding/Bencode;Ljava/io/InputStream;Lkotlinx/serialization/KSerializer;)Ljava/lang/Object;
146+
public static final synthetic fun encodeToStream (Lspace/iseki/bencoding/Bencode;Ljava/lang/Object;Lkotlinx/serialization/KSerializer;Ljava/io/OutputStream;)V
142147
}
143148

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
@file:JvmName("BencodingJVM")
2+
3+
package space.iseki.bencoding
4+
5+
import kotlinx.serialization.KSerializer
6+
import kotlinx.serialization.serializer
7+
import space.iseki.bencoding.internal.BencodeDecoder0
8+
import space.iseki.bencoding.internal.BencodeEncoder0
9+
import space.iseki.bencoding.internal.InputStreamLexer
10+
import space.iseki.bencoding.internal.OutputStreamWriter
11+
import java.io.InputStream
12+
13+
fun <T> Bencode.decodeFromStream(input: InputStream, serializer: KSerializer<T>): T =
14+
serializer.deserialize(BencodeDecoder0(InputStreamLexer(input), serializersModule, options))
15+
16+
inline fun <reified T> Bencode.decodeFromStream(input: InputStream) = decodeFromStream(input, serializer<T>())
17+
18+
fun <T> Bencode.encodeToStream(value: T, serializer: KSerializer<T>, output: java.io.OutputStream) {
19+
BencodeEncoder0(serializersModule, options, OutputStreamWriter(output)).encodeSerializableValue(serializer, value)
20+
}
21+
22+
inline fun <reified T> Bencode.encodeToStream(value: T, output: java.io.OutputStream) =
23+
encodeToStream(value, serializer<T>(), output)

src/jvmMain/kotlin/space/iseki/bencoding/internal/Bencoding.kt

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,44 @@ package space.iseki.bencoding.internal
55
import kotlinx.serialization.KSerializer
66
import kotlinx.serialization.serializer
77
import space.iseki.bencoding.Bencode
8+
import space.iseki.bencoding.decodeFromStream
9+
import space.iseki.bencoding.encodeToStream
810
import java.io.InputStream
911

12+
@Deprecated(
13+
"Use function in space.iseki.bencoding package", ReplaceWith(
14+
expression = "decodeFromStream(input, serializer)", imports = ["space.iseki.bencoding.decodeFromStream"]
15+
), DeprecationLevel.HIDDEN
16+
)
1017
fun <T> Bencode.decodeFromStream(input: InputStream, serializer: KSerializer<T>): T =
11-
serializer.deserialize(BencodeDecoder0(InputStreamLexer(input), serializersModule, options))
18+
decodeFromStream(input, serializer)
1219

13-
inline fun <reified T> Bencode.decodeFromStream(input: InputStream) = decodeFromStream(input, serializer<T>())
20+
@Deprecated(
21+
message = "Use function in space.iseki.bencoding package",
22+
level = DeprecationLevel.HIDDEN,
23+
replaceWith = ReplaceWith(
24+
expression = "decodeFromStream(input)", imports = ["space.iseki.bencoding.decodeFromStream"]
25+
)
26+
)
27+
inline fun <reified T> Bencode.decodeFromStream(input: InputStream): T = decodeFromStream(input, serializer<T>())
1428

29+
@Deprecated(
30+
message = "Use function in space.iseki.bencoding package",
31+
level = DeprecationLevel.HIDDEN,
32+
replaceWith = ReplaceWith(
33+
expression = "encodeToStream(value, serializer, output)", imports = ["space.iseki.bencoding.encodeToStream"]
34+
)
35+
)
1536
fun <T> Bencode.encodeToStream(value: T, serializer: KSerializer<T>, output: java.io.OutputStream) {
16-
BencodeEncoder0(serializersModule, options, OutputStreamWriter(output)).encodeSerializableValue(serializer, value)
37+
encodeToStream(value, serializer, output)
1738
}
1839

40+
@Deprecated(
41+
message = "Use function in space.iseki.bencoding package",
42+
level = DeprecationLevel.HIDDEN,
43+
replaceWith = ReplaceWith(
44+
expression = "encodeToStream(value, output)", imports = ["space.iseki.bencoding.encodeToStream"]
45+
)
46+
)
1947
inline fun <reified T> Bencode.encodeToStream(value: T, output: java.io.OutputStream) =
2048
encodeToStream(value, serializer<T>(), output)

0 commit comments

Comments
 (0)