facet_generate 0.16.0

Generate Swift, Kotlin and TypeScript from types annotated with `#[derive(Facet)]`
Documentation
package com.example

import kotlinx.serialization.*
import kotlinx.serialization.builtins.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.*
import kotlinx.serialization.json.*
import kotlinx.serialization.modules.*

@Serializable data class GenericStruct<A, B>(val field_a: A, val field_b: List<B>)

@Serializable
data class GenericStructUsingGenericStruct<T>(
        val struct_field: GenericStruct<String, T>,
        val second_struct_field: GenericStruct<T, String>,
        val third_struct_field: GenericStruct<T, List<T>>
)

@Serializable
@JsonClassDiscriminator("type")
sealed interface EnumUsingGenericStruct {
    @Serializable
    @SerialName("VariantA")
    data class VariantA(val content: GenericStruct<String, Float>) : EnumUsingGenericStruct

    @Serializable
    @SerialName("VariantB")
    data class VariantB(val content: GenericStruct<String, Int>) : EnumUsingGenericStruct

    @Serializable
    @SerialName("VariantC")
    data class VariantC(val content: GenericStruct<String, Boolean>) : EnumUsingGenericStruct

    @Serializable
    @SerialName("VariantD")
    data class VariantD(val content: GenericStructUsingGenericStruct<Unit>) :
            EnumUsingGenericStruct
}