Skip to content

Commit e4faa66

Browse files
committed
Add JVM extensions
1 parent 920963c commit e4faa66

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

library/api/library.api

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ public final class kotlinx/serialization/csv/CsvRecordReaderKt {
3232
public static final fun recordReader (Lkotlinx/serialization/csv/Csv;Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/csv/source/CsvSource;)Lkotlinx/serialization/csv/CsvRecordReader;
3333
}
3434

35+
public final class kotlinx/serialization/csv/CsvRecordReader_jvmKt {
36+
public static final fun recordReader (Lkotlinx/serialization/csv/Csv;Lkotlinx/serialization/KSerializer;Ljava/io/InputStream;)Lkotlinx/serialization/csv/CsvRecordReader;
37+
public static final fun recordReader (Lkotlinx/serialization/csv/Csv;Lkotlinx/serialization/KSerializer;Ljava/io/Reader;)Lkotlinx/serialization/csv/CsvRecordReader;
38+
}
39+
3540
public abstract interface class kotlinx/serialization/csv/CsvRecordWriter {
3641
public abstract fun write (Ljava/lang/Object;)V
3742
}
@@ -40,6 +45,10 @@ public final class kotlinx/serialization/csv/CsvRecordWriterKt {
4045
public static final fun recordWriter (Lkotlinx/serialization/csv/Csv;Lkotlinx/serialization/KSerializer;Lkotlinx/serialization/csv/sink/CsvSink;)Lkotlinx/serialization/csv/CsvRecordWriter;
4146
}
4247

48+
public final class kotlinx/serialization/csv/CsvRecordWriter_jvmKt {
49+
public static final fun recordWriter (Lkotlinx/serialization/csv/Csv;Lkotlinx/serialization/KSerializer;Ljava/io/OutputStream;)Lkotlinx/serialization/csv/CsvRecordWriter;
50+
}
51+
4352
public final class kotlinx/serialization/csv/Csv_jvmKt {
4453
public static final fun decodeFrom (Lkotlinx/serialization/csv/Csv;Lkotlinx/serialization/DeserializationStrategy;Ljava/io/InputStream;)Ljava/lang/Object;
4554
public static final fun decodeFrom (Lkotlinx/serialization/csv/Csv;Lkotlinx/serialization/DeserializationStrategy;Ljava/io/Reader;)Ljava/lang/Object;
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package kotlinx.serialization.csv
2+
3+
import kotlinx.serialization.ExperimentalSerializationApi
4+
import kotlinx.serialization.KSerializer
5+
import kotlinx.serialization.csv.source.CsvSource
6+
import java.io.InputStream
7+
import java.io.Reader
8+
9+
/**
10+
* Parse CSV line-by-line from the given [input].
11+
*
12+
* @param deserializer The deserializer used to parse the given CSV string.
13+
* @param input The CSV source to parse. This function *does not close the source*.
14+
*/
15+
@ExperimentalSerializationApi
16+
public fun <T : Any> Csv.recordReader(
17+
deserializer: KSerializer<T>,
18+
input: Reader,
19+
): CsvRecordReader<T> = recordReader(
20+
deserializer = deserializer,
21+
source = CsvSource(input),
22+
)
23+
24+
/**
25+
* Parse CSV line-by-line from the given [input].
26+
*
27+
* @param deserializer The deserializer used to parse the given CSV string.
28+
* @param input The CSV source to parse. This function *does not close the source*.
29+
*/
30+
@ExperimentalSerializationApi
31+
public fun <T : Any> Csv.recordReader(
32+
deserializer: KSerializer<T>,
33+
input: InputStream,
34+
): CsvRecordReader<T> = recordReader(
35+
deserializer = deserializer,
36+
source = CsvSource(input),
37+
)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package kotlinx.serialization.csv
2+
3+
import kotlinx.serialization.ExperimentalSerializationApi
4+
import kotlinx.serialization.KSerializer
5+
import kotlinx.serialization.csv.sink.CsvSink
6+
import java.io.OutputStream
7+
8+
/**
9+
* Create [CsvRecordWriter] that allows writing CSV line-by-line.
10+
*
11+
* @param serializer The serializer used to serialize the given object.
12+
* @param output The output where the CSV will be written.
13+
*/
14+
@ExperimentalSerializationApi
15+
public fun <T : Any> Csv.recordWriter(
16+
serializer: KSerializer<T>,
17+
output: OutputStream,
18+
): CsvRecordWriter<T> = recordWriter(
19+
serializer = serializer,
20+
sink = CsvSink(output),
21+
)

0 commit comments

Comments
 (0)