From d67d05a2c57747110f815618ad0fec823273db63 Mon Sep 17 00:00:00 2001 From: Andrzej Zabost <5508894+azabost@users.noreply.github.com> Date: Thu, 29 Jun 2023 22:07:08 +0200 Subject: [PATCH] Add info about Gson serialization to README --- README.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 67df5ab..d19bddd 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,8 @@ when (val orange = "Orange".codifiedEnum()) { ### CodifiedEnum serialization ### +#### kotlinx.serialization #### + Add the following dependency in order to access `CodifiedEnum` serializer using [Kotlin serialization](https://github.com/Kotlin/kotlinx.serialization). @@ -91,8 +93,6 @@ val wrapperFromJsonWithOrange = json.parse(FruitWrapper.serializer(), jsonWithOr Assertions.assertEquals("Orange", wrapperFromJsonWithOrange.fruit.code()) ``` -#### Serialization of collections with CodifiedEnum #### - When `CodifiedEnum` is a parameter of a collection such as `List`, `@Serializable` should be applied to `CodifiedEnum` - inside the collection type: @@ -103,4 +103,20 @@ data class FoodBasket( val fruits: List<@Serializable(with = Fruit.CodifiedSerializer::class) CodifiedEnum>, val vegetables: List<@Serializable(with = Vegetable.CodifiedSerializer::class) CodifiedEnum> ) +``` + +#### Gson #### + +Add this dependency: + +```kotlin +implementation("dev.bright.codified:enums-gson:1.8.22.1") +``` + +and register the `TypeAdapterFactory` for `CodifiedEnum`: + +```kotlin +val gson = GsonBuilder() + .registerTypeAdapterFactory(CodifiedEnumTypeAdapter.Factory()) + .create() ``` \ No newline at end of file