# kotlinx.serialization
-keep,includedescriptorclasses class com.taptap.sdk.kit.internal.bean.**$$serializer { *; } # <-- change package name to your app's
-keepclassmembers class com.taptap.sdk.kit.internal.bean.** {
    *** Companion;
}
-keepclasseswithmembers class com.taptap.sdk.kit.internal.bean.** {
    kotlinx.serialization.KSerializer serializer(...);
}

#
-keep class com.taptap.sdk.**.BuildConfig {*;}

-keep public class com.taptap.sdk.kit.internal.service.ITapAutoService {*;}
-keepnames class * implements com.taptap.sdk.kit.internal.service.ITapAutoService

-keep class com.taptap.sdk.kit.internal.exception.** {}

##########################################################################################
# 测试新的kotlinx.serialization规则， 如果好用就替换上面之前的
##########################################################################################
-if @kotlinx.serialization.Serializable class **
-keepclassmembers class <1> {
   static <1>$Companion Companion;
}

# Keep `serializer()` on companion objects (both default and named) of serializable classes.
-if @kotlinx.serialization.Serializable class ** {
   static **$* *;
}
-keepclassmembers class <2>$<3> {
   kotlinx.serialization.KSerializer serializer(...);
}

# Keep `INSTANCE.serializer()` of serializable objects.
-if @kotlinx.serialization.Serializable class ** {
   public static ** INSTANCE;
}
-keepclassmembers class <1> {
   public static <1> INSTANCE;
   kotlinx.serialization.KSerializer serializer(...);
}

-if @kotlinx.serialization.Serializable class **
-keep,includedescriptorclasses class <1>$$serializer { *; }