mirror of
https://github.com/RDCN-Community-Developers/rdkt.git
synced 2026-09-04 17:25:33 +08:00
Fixed serialName in TransformSerializer.
This commit is contained in:
@@ -123,7 +123,7 @@ public class RowPattern {
|
||||
}
|
||||
|
||||
@OptIn(RDKTInternalAPI::class)
|
||||
public object Serializer : TransformSerializer<RowPattern, String>(String.serializer()) {
|
||||
public object Serializer : TransformSerializer<RowPattern, String>("RowPattern", String.serializer()) {
|
||||
override fun toData(value: RowPattern): String {
|
||||
return value.pattern
|
||||
}
|
||||
|
||||
@@ -79,7 +79,10 @@ public sealed interface SelectedRoomsAndTopLayer {
|
||||
}
|
||||
|
||||
public object Serializer :
|
||||
TransformSerializer<SelectedRoomsAndTopLayer, Set<Int>>(kotlinx.serialization.serializer()) {
|
||||
TransformSerializer<SelectedRoomsAndTopLayer, Set<Int>>(
|
||||
"SelectedRoomsAndTopLayer",
|
||||
kotlinx.serialization.serializer()
|
||||
) {
|
||||
override fun toData(value: SelectedRoomsAndTopLayer): Set<Int> {
|
||||
return value.rooms
|
||||
}
|
||||
@@ -128,7 +131,10 @@ private sealed class AbstractSelectedRoomsAndTopLayer : SelectedRoomsAndTopLayer
|
||||
@Serializable(SelectedRoomsOrTopLayer.Serializer::class)
|
||||
public sealed interface SelectedRoomsOrTopLayer : SelectedRoomsAndTopLayer {
|
||||
public object Serializer :
|
||||
TransformSerializer<SelectedRoomsOrTopLayer, Set<Int>>(SetSerializer(Int.serializer())) {
|
||||
TransformSerializer<SelectedRoomsOrTopLayer, Set<Int>>(
|
||||
"SelectedRoomsOrTopLayer",
|
||||
SetSerializer(Int.serializer())
|
||||
) {
|
||||
override fun toData(value: SelectedRoomsOrTopLayer): Set<Int> {
|
||||
return value.rooms
|
||||
}
|
||||
@@ -161,7 +167,10 @@ public sealed interface SingleSelectedRoomOrTopLayer : SelectedRoomsOrTopLayer {
|
||||
}
|
||||
|
||||
public object Serializer :
|
||||
TransformSerializer<SingleSelectedRoomOrTopLayer, Set<Int>>(SetSerializer(Int.serializer())) {
|
||||
TransformSerializer<SingleSelectedRoomOrTopLayer, Set<Int>>(
|
||||
"SingleSelectedRoomOrTopLayer",
|
||||
SetSerializer(Int.serializer())
|
||||
) {
|
||||
override fun toData(value: SingleSelectedRoomOrTopLayer): Set<Int> {
|
||||
return value.rooms
|
||||
}
|
||||
@@ -214,7 +223,7 @@ public sealed interface SelectedRooms : SelectedRoomsOrTopLayer {
|
||||
}
|
||||
|
||||
public object Serializer :
|
||||
TransformSerializer<SelectedRooms, Set<Int>>(SetSerializer(Int.serializer())) {
|
||||
TransformSerializer<SelectedRooms, Set<Int>>("SelectedRooms", SetSerializer(Int.serializer())) {
|
||||
override fun toData(value: SelectedRooms): Set<Int> {
|
||||
return value.rooms
|
||||
}
|
||||
@@ -248,7 +257,7 @@ public sealed interface SelectedTopLayer : SingleSelectedRoomOrTopLayer {
|
||||
}
|
||||
|
||||
public object Serializer :
|
||||
TransformSerializer<SelectedTopLayer, Set<Int>>(SetSerializer(Int.serializer())) {
|
||||
TransformSerializer<SelectedTopLayer, Set<Int>>("SelectedTopLayer", SetSerializer(Int.serializer())) {
|
||||
override fun toData(value: SelectedTopLayer): Set<Int> {
|
||||
return value.rooms
|
||||
}
|
||||
@@ -285,7 +294,7 @@ public sealed interface SingleSelectedRoom : SingleSelectedRoomOrTopLayer, Selec
|
||||
}
|
||||
|
||||
public object Serializer :
|
||||
TransformSerializer<SingleSelectedRoom, Set<Int>>(SetSerializer(Int.serializer())) {
|
||||
TransformSerializer<SingleSelectedRoom, Set<Int>>("SingleSelectedRoom", SetSerializer(Int.serializer())) {
|
||||
override fun toData(value: SingleSelectedRoom): Set<Int> {
|
||||
return value.rooms
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public abstract class AudioGroup(
|
||||
* @param soundType The type of sound group.
|
||||
*/
|
||||
public abstract class BaseSerializer<T : AudioGroup>(protected val soundType: String) :
|
||||
TransformSerializer<T, List<RawSubGroupAudioData>>(kotlinx.serialization.serializer()) {
|
||||
TransformSerializer<T, List<RawSubGroupAudioData>>(soundType, kotlinx.serialization.serializer()) {
|
||||
/**
|
||||
* Creates an instance of [T] from a map of subtype identifiers to [SubGroupAudioData].
|
||||
*/
|
||||
|
||||
@@ -58,7 +58,8 @@ public data class PulseFreeTimeBeatEvent @JvmOverloads constructor(
|
||||
public object Remove : Action("Remove")
|
||||
}
|
||||
|
||||
public object Serializer : TransformSerializer<PulseFreeTimeBeatEvent, Serializer.Data>(Data.serializer()) {
|
||||
public object Serializer :
|
||||
TransformSerializer<PulseFreeTimeBeatEvent, Serializer.Data>("PulseFreeTimeBeat", Data.serializer()) {
|
||||
override fun toData(value: PulseFreeTimeBeatEvent): Data {
|
||||
return Data.fromBase(value).apply {
|
||||
action = value.action.action
|
||||
|
||||
@@ -66,7 +66,10 @@ public data class SetGameSoundEvent private constructor(
|
||||
public object Serializer : JsonTransformingSerializer<SetGameSoundEvent>(DataSerializer) {
|
||||
@OptIn(RDKTInternalAPI::class)
|
||||
private object DataSerializer :
|
||||
TransformSerializer<SetGameSoundEvent, SetGameSoundEvent>(generatedSerializer()) {
|
||||
TransformSerializer<SetGameSoundEvent, SetGameSoundEvent>(
|
||||
generatedSerializer().descriptor.serialName,
|
||||
generatedSerializer()
|
||||
) {
|
||||
override fun toData(value: SetGameSoundEvent) = value
|
||||
|
||||
override fun fromData(data: SetGameSoundEvent): SetGameSoundEvent {
|
||||
|
||||
@@ -140,7 +140,7 @@ public data class SetRowXsEvent(
|
||||
}
|
||||
}
|
||||
|
||||
public object Serializer : TransformSerializer<SetRowXsEvent, Serializer.Data>(Data.serializer()) {
|
||||
public object Serializer : TransformSerializer<SetRowXsEvent, Serializer.Data>("SetRowXs", Data.serializer()) {
|
||||
override fun toData(value: SetRowXsEvent): Data {
|
||||
return Data.fromBase(value).apply {
|
||||
pattern = value.pattern
|
||||
|
||||
+6
-2
@@ -18,10 +18,14 @@ import kotlinx.serialization.encoding.Encoder
|
||||
@RDKTInternalAPI
|
||||
@SubclassOptInRequired(RDKTInternalAPI::class)
|
||||
public abstract class TransformSerializer<T, Data>(
|
||||
serialName: String,
|
||||
private val dataSerializer: KSerializer<Data>
|
||||
) : KSerializer<T> {
|
||||
override val descriptor: SerialDescriptor
|
||||
get() = dataSerializer.descriptor
|
||||
override val descriptor: SerialDescriptor = if (dataSerializer.descriptor.serialName == serialName) {
|
||||
dataSerializer.descriptor
|
||||
} else {
|
||||
SerialDescriptor(serialName, dataSerializer.descriptor)
|
||||
}
|
||||
|
||||
override fun serialize(encoder: Encoder, value: T) {
|
||||
val data = toData(value)
|
||||
|
||||
Reference in New Issue
Block a user