EnumWithCaseConventionSerializer
open class EnumWithCaseConventionSerializer<E : Enum<E>>(enumName: String, entries: EnumEntries<E>, pgConvention: CaseConvention = CaseConvention.SNAKE_CASE_UPPER, kotlinConvention: CaseConvention = CaseConvention.PASCAL_CASE) : KSerializer<E>
A specialized serializer for mapping Kotlin Enums to their PostgreSQL representations.
Key Features
Bidirectional Mapping: Automatically converts names during both serialization and deserialization.
Convention Support: Integrates with CaseConvention for flexible name transformations.
Usage Example
@Serializable(with = LegionStatusSerializer::class)
@PgEnum(pgConvention = CaseConvention.SNAKE_CASE_UPPER)
enum class LegionStatus { Garrisoned, OnMarch, InBattle, Victorious }
object LegionStatusSerializer : EnumWithCaseConventionSerializer<LegionStatus>(
enumName = "LegionStatus",
entries = LegionStatus.entries,
pgConvention = CaseConvention.SNAKE_CASE_UPPER,
kotlinConvention = CaseConvention.PASCAL_CASE
)Content copied to clipboard
Parameters
enumName
A unique identifier for the enum in the serialization descriptor.
entries
The list of all enum values (typically provided via EnumClass.entries).
pgConvention
The naming convention used in the database (default: SNAKE_CASE_UPPER).
kotlinConvention
The naming convention used in your Kotlin code (default: PASCAL_CASE).
Type Parameters
E
The enum class to be serialized.
Constructors
Link copied to clipboard
constructor(enumName: String, entries: EnumEntries<E>, pgConvention: CaseConvention = CaseConvention.SNAKE_CASE_UPPER, kotlinConvention: CaseConvention = CaseConvention.PASCAL_CASE)