KotoolsTypesSerializersModule

Returns a collection of default serializers for types located in org.kotools.types package.

Note: All samples documented below use the JavaScript Object Notation (JSON) format.


EmailAddress

This function provides an object for serializing and deserializing an EmailAddress as String.

@Serializable
data class User(@Contextual val email: EmailAddress)

val email: EmailAddress? = EmailAddress.of("[email protected]")
checkNotNull(email)
val user = User(email)

val format = Json {
this.serializersModule = KotoolsTypesSerializersModule()
}

val encoded: String = format.encodeToString(user)
check(encoded == """{"email":"[email protected]"}""")

val decoded: User = format.decodeFromString(encoded)
check(decoded == user)

EmailAddressRegex

This function provides an object for serializing and deserializing an EmailAddressRegex as String.

@Serializable
data class CustomEmailAddress(
@Contextual val email: EmailAddress,
@Contextual val regex: EmailAddressRegex
)

val email: EmailAddress? = EmailAddress.of("[email protected]")
checkNotNull(email)
val regex: EmailAddressRegex = EmailAddressRegex.alphabetic()
val customEmail = CustomEmailAddress(email, regex)

val format = Json {
this.serializersModule = KotoolsTypesSerializersModule()
}

val encoded: String = format.encodeToString(customEmail)
val encodedEmail = """"email":"[email protected]""""
val encodedRegex = """"regex":"^[a-z]+@[a-z]+\\.[a-z]+$""""
check(encoded == """{$encodedEmail,$encodedRegex}""")

val decoded: CustomEmailAddress = format.decodeFromString(encoded)
check(decoded == customEmail)

Integer

This function provides an object for serializing and deserializing an Integer as String.

@Serializable
data class Account(@Contextual val balance: Integer)

val balance: Integer = Integer.fromLong(150)
val account = Account(balance)

val format = Json {
this.serializersModule = KotoolsTypesSerializersModule()
}

val encoded: String = format.encodeToString(account)
check(encoded == """{"balance":"150"}""")

val decoded: Account = format.decodeFromString(encoded)
check(decoded == account)

Since

5.0.1